2013-03-14 42 views
5

Tôi có một ListView và không thể hiển thị các mục con trong danh sách ... Chỉ hiển thị một mục hoặc danh mục khác nhưng không hiển thị cả hai. Nếu tôi xóa số từ bên dưới, nó sẽ hiển thị chuỗi (tiêu đề):Hiển thị các mục và tiêu đề của ListView

Tôi muốn hiển thị cả Mục và mục con.

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    this.loadData(); 

    String []titles_str = titles.toArray(new String[titles.toArray().length]); 
    this.setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_2, android.R.id.text1, titles_str)); 

    Number []subtitles_str = lengths.toArray(new Number[lengths.toArray().length]); 
    this.setListAdapter(new ArrayAdapter<Number>(this, 
      android.R.layout.simple_list_item_2, android.R.id.text2, subtitles_str)); 
} 
+0

Bạn có muốn chỉ là "phụ đề" bên dưới mỗi mục danh sách hoặc bạn muốn mục phụ? – codeMagic

+1

tham khảo liên kết http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/ u sẽ hiểu chức năng – maddy

+0

Tôi muốn phụ đề bên dưới mỗi danh sách – brodster

Trả lời

4

bạn đang sử dụng "this.setListAdapter" hai lần, chỉ Thứ hai "this.setListAdapter" này sẽ phản ánh.

Đối với yêu cầu của bạn, hãy sử dụng

1)custom arrayadapter<customObject> 
     or 
2)simpleadapter. 

1) Sử dụng arrayadapter tùy chỉnh, Vui lòng kiểm tra http://devtut.wordpress.com/2011/06/09/custom-arrayadapter-for-a-listview-android/

2) Sử dụng SimpleAdapter:

List<Map<String, String>> data = new ArrayList<Map<String, String>>(); 
for (int i=0; i<titles_str.length; i++) { 
    Map<String, String> datum = new HashMap<String, String>(2); 
    datum.put("title", titles_str[i]); 
    datum.put("subtitle", String.valueof(subtitles_str[i])); 
    data.add(datum); 
} 
SimpleAdapter adapter = new SimpleAdapter(this, data, 
             android.R.layout.simple_list_item_2, 
             new String[] {"title", "subtitle"}, 
             new int[] {android.R.id.text1, 
               android.R.id.text2}); 
this.setListAdapter(adapter); 
+0

Xin lưu ý rằng 'SimpleAdapter' được thiết kế cho dữ liệu tĩnh. Nếu dữ liệu là cần thiết để được cập nhật. Bạn có thể cần phải tạo lại một 'SimpleAdapter' mới cho nội dung cập nhật mới. – Yeung

+0

@Yeung - vâng, cần phải tạo lại một SimpleAdapter mới cho nội dung cập nhật mới. Hoặc đi cho bất kỳ bộ điều hợp khác như ArrayAdapter – Vidyadhar

+0

Làm cách nào để có được giá trị "tiêu đề" của mục con này? làm ví dụ, khi nhấp vào một mục trên chế độ xem danh sách, chúng tôi muốn nhận tiêu đề phụ. – Elshan

Các vấn đề liên quan