2013-03-14 13 views
5

私は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)); 
} 
+0

を、あなたはそれぞれ以下単に "字幕" をしたいですかアイテムをリストするか、サブアイテムが必要ですか? – codeMagic

+1

リンクhttp://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/を参照してください。機能を理解します。 – maddy

+0

各リストの下に字幕が表示されます。 – brodster

答えて

4

"this.setListAdapter"を2回使用していますが、2回目の "this.setListAdapter"だけが反映されます。あなたの条件のために

、カスタムarrayadapter使用)

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

1を使用してください、SimpleAdapter使用)http://devtut.wordpress.com/2011/06/09/custom-arrayadapter-for-a-listview-android/

2を確認してください:

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

ちょっと、 'SimpleAdapter'は静的データ用に設計されています。データを更新する必要がある場合。おそらく、新しい更新されたコンテンツのために新しいSimpleAdapterを再作成する必要があります。 – Yeung

+0

@はい - はい、新しい更新されたコンテンツ用の新しいSimpleAdapterを再作成する必要があります。またはArrayAdapterのような他のアダプターに行く – Vidyadhar

+0

このサブアイテムの "title"値を取得するにはどうすればいいですか?たとえば、リストビューでアイテムを1つクリックすると、サブアイテムのタイトルを取得したいと考えています。 – Elshan

関連する問題