search
HomeJavajavaTutorialHow to Create a ListView with a Static Header and Dynamic Text in Each Row?

How to Create a ListView with a Static Header and Dynamic Text in Each Row?

Customizing ListView Row Layout with Static Header and Dynamic Text

This question concerns the customization of ListView row layouts to include a static header and dynamically changing text. The inquirer has created a ListView with data populated from a String array using an ArrayAdapter, but they encounter difficulty in displaying the desired layout format.

Solution:

To achieve the specified layout, follow these steps:

  1. Create a custom row layout (row.xml) with two TextViews: one for the static header and another for the dynamic text.
  2. Define the RelativeLayout for the main activity XML layout to include the ListView.
  3. Implement a custom adapter that inflates the row layout and sets the data accordingly.

The adapter class includes methods like getCount(), getItem(), getItemId(), and getView(), which handle data handling and view creation.

  1. In the activity's onCreate() method, set the adapter to the ListView.

Here's an example implementation:

row.xml:

<code class="xml"><?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">

    <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Header"></textview>

    <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text"></textview>
</linearlayout></code>

main.xml:

<code class="xml"><?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal">

    <listview android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent">
    </listview>

</linearlayout></code>

Custom Adapter:

<code class="java">class yourAdapter extends BaseAdapter {

    ...

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        if (vi == null)
            vi = inflater.inflate(R.layout.row, null);
        TextView text = (TextView) vi.findViewById(R.id.text);
        text.setText(data[position]);
        return vi;
    }
}</code>

The above is the detailed content of How to Create a ListView with a Static Header and Dynamic Text in Each Row?. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function