Tôi muốn tạo một Activity
chứa danh sách trong đó các hàng có bố cục tùy chỉnh. Vì vậy, tôi đã tạo list_entry_layout.xml
tập tin định bố trí cho mỗi hàng trong danh sách của tôi nên có (trong ví dụ của tôi mỗi hàng phải có một tiêu đề và tóm tắt):ListView với Bố cục hàng tùy chỉnh - Android
<?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:id="@+id/list_entry_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp" >
</TextView>
<TextView
android:id="@+id/list_entry_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10dp" >
</TextView>
</LinearLayout>
Vấn đề của tôi là tôi không biết cách thêm dữ liệu vào mỗi hàng trong lớp ListActivity
. Với đoạn mã sau đoạn mã tôi có thể thêm các tiêu đề của mỗi hàng:
public class MyActivity extends ListActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.list_activity);
ListView listView = (ListView) findViewById(android.R.id.list);
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" };
ArrayAdapter<String> titleAdapter = new ArrayAdapter<String>(this, R.layout.list_entry_layout, R.id.list_entry_title, values);
// Assign adapter to ListView
listView.setAdapter(titleAdapter);
}
}
Để thêm cũng tóm tắt làm thế nào tôi nên làm gì?
Nếu tôi thêm mã này, tôi sẽ có các bản tóm tắt hình dung, và không phải là danh hiệu:
String[] values = new String[] { "Android_summary", "iPhone_summary", "WindowsMobile_summary", "Blackberry_summary", "WebOS_summary", "Ubuntu_summary", "Windows7_summary", "Max OS X_summary", "Linux_summary", "OS/2_summary" };
ArrayAdapter<String> summaryAdapter = new ArrayAdapter<String>(this, R.layout.list_entry_layout, R.id.list_entry_summary, values);
// Assign adapter to ListView
listView.setAdapter(summaryAdapter);
Sau đây là kết quả tôi muốn để có được:
Đó là giải pháp duy nhất có thể? – Matteo
Bạn cần ghi đè phương thức 'getView()' của 'ArrayAdapter' để điền vào listrow của bạn. – nhaarman
Ok vì vậy tôi có 2 khả năng? Cái nào tốt hơn trong ý kiến của bạn, ghi đè lên một phương thức, hoặc viết arrayadapter của riêng tôi? – Matteo