為Android ListView 建立自訂行項目:詳細指南
在本文中,我們將探討如何建立自訂行項目對於Android應用程式中的ListView。
挑戰
我們有一個ListView,需要具有以下佈局的行:
HEADER Text
“HEADER”文本保持靜態,而“Text ”內容動態變化。
初始方法
最初,我們嘗試填充一個字串數組,將其傳遞給ArrayAdapter,並在每次資料更改時設定它:
data_array = populateString(); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, data_array); listView.setAdapter(adapter);
但是,這種方法沒有提供期望的結果,因為現有佈局無法以指定格式顯示資料。
自訂行佈局
為了克服此限制,我們將為行項目建立自訂版面:
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>
主要XML 佈局
接下來,調整主要XML 版面配置以包含ListView:
<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>
適配器
我們現在定義適配器:<code class="java">class yourAdapter extends BaseAdapter { // ... (the adapter code) ... @Override public View getView(int position, View convertView, ViewGroup parent) { // ... (customizing view) ... TextView text = (TextView) vi.findViewById(R.id.text); text.setText(data[position]); return vi; } }</code>
Java Activity
最後,在Java 活性中:<code class="java">public class StackActivity extends Activity { // ... (the activity code) ... @Override public void onCreate(Bundle savedInstanceState) { // ... (setting up listview) ... listview.setAdapter(new yourAdapter(this, new String[] { "data1", "data2" })); } }</code>
以上是如何在 Android ListView 中自訂行項目:逐步指南?的詳細內容。更多資訊請關注PHP中文網其他相關文章!