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:
The adapter class includes methods like getCount(), getItem(), getItemId(), and getView(), which handle data handling and view creation.
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 android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text" /> </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!