Отображение подэлементов и заголовков ListView

У меня есть ListView и я не могу отображать подэлементы в списке... Он отображает только один или другой, но не оба. Если я удалю номер снизу, он отобразит строку (заголовки):

Я хочу отображать как элементы, так и подэлементы.

/** 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));
}

person brodster    schedule 14.03.2013    source источник
comment
Вам нужны только субтитры под каждым элементом списка или вам нужны подэлементы?   -  person codeMagic    schedule 14.03.2013
comment
перейдите по ссылке androidhive.info/2012/ 02/ вы поймете функциональность   -  person maddy    schedule 14.03.2013
comment
Я хочу субтитры под каждым списком   -  person brodster    schedule 16.03.2013
comment
Я думаю, что здесь был дан ответ... не уверен, но может быть. текст подэлемента списка"> stackoverflow.com/questions/7916834/   -  person octupus23    schedule 19.03.2013


Ответы (1)


вы используете «this.setListAdapter» два раза, будет отражаться только второй «this.setListAdapter».

Для вашего требования, пожалуйста, используйте

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

1) Используя собственный адаптер массива, проверьте http://devtut.wordpress.com/2011/06/09/custom-arrayadapter-for-a-listview-android/

2) Использование 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);
person Vidyadhar    schedule 09.05.2013
comment
Эй, обратите внимание, что SimpleAdapter предназначен для статических данных. Если данные необходимо обновить. Вероятно, вам нужно заново создать новый SimpleAdapter для нового обновленного контента. - person Yeung; 07.08.2013
comment
@Yeung - да, нужно заново создать новый SimpleAdapter для нового обновленного контента. Или выберите любой другой адаптер, например ArrayAdapter. - person Vidyadhar; 07.08.2013
comment
Как получить значение заголовка этого подэлемента? например, при нажатии одного элемента в представлении списка мы хотим получить заголовок подэлемента. - person Elshan; 26.12.2013