6

リスト ビューに arraylist を追加する際に問題が発生しました。ここで問題について説明します。ここで何が問題なのか教えてください。以下の xml ファイルに示すように、3 つの線形レイアウトがあり、中央のレイアウトにはリスト ビューがあります。 . `

 <LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="0.59"
        android:src="@drawable/x_title" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout_grouplist"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.09"
    android:orientation="vertical"
    android:weightSum="1" >

    <ListView
        android:id="@+id/listview_grouplist"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
    </ListView>

</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.39"
        android:text="TextView" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
  </LinearLayout>
</LinearLayout>`

配列アダプターを使用してリストにアイテムを追加しようとすると、うまく機能します..しかし、リストアダプターでは機能しません。クラッシュしています。

ListAdapter adapter = new SimpleAdapter(this,
      mylist, 
      R.layout.grouplistlayout, 
      new String[] { "Group Name" }, 
      new int[] { R.id.listview_grouplist });

String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
      "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
      "Linux", "OS/2" };

ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
lst_projlist.setAdapter(adapter1);

誰かがここに何が欠けているか教えてもらえますか?

4

4 に答える 4

5

あなたの問題はここにあります:

    R.layout.grouplistlayout,
    new int[] { R.id.listview_grouplist }); 

一番上のものはリストレイアウトを指している必要がありますandroid.R.layout.simple_list_item_1 .一番下のものはリストビューではなくTextViewを指している必要があります.

また、アダプターをリストビューにバインドしている場所がわかりません。

SimpleAdapter ドキュメントから:

public SimpleAdapter(Context context, 
                     List<? extends Map<String, ?>> data, 
                     int resource, 
                     String[] from, 
                     int[] to)

以来: API レベル 1

コンストラクタ

パラメータ
context この SimpleAdapter に関連付けられたビューが実行されているコンテキスト
data マップのリスト。リスト内の各エントリは、リスト内の 1 つの行に対応します。マップには各行のデータが含まれ、「from」
リソースで指定されたすべてのエントリが含まれている必要が あります。このリスト アイテムのビューを定義するビュー レイアウトのリソース識別子。レイアウト ファイルには、少なくとも、各項目に関連付けられたマップに追加される列名のリスト
から「to」で定義された名前付きビューを含める必要があります。 to 「from」パラメーターの列を表示する必要があるビュー。これらはすべて TextView である必要があります。このリストの最初の N 個のビューには、from パラメータの最初の N 列の値が与えられます。

于 2012-04-11T04:50:33.160 に答える
1

Activity で拡張する場合は setAdapter を使用する必要があり、ListActivity で拡張する場合は setListAdapter を使用する必要があり、xml ファイルを使用する必要はありません。

そして、ここでActivityで拡張していると思うので、setListAdapterを使用する必要はありません..

于 2012-04-11T04:52:11.350 に答える
0

ListViewのコードを置き換えるだけです。

<ListView
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>

これにより、アプリが完全に実行されます。

于 2012-04-11T04:31:57.023 に答える
0

以下で、渡すパラメーターを確認します。

ListAdapter adapter = new SimpleAdapter(this,
  mylist, 
  R.layout.grouplistlayout, 
  new String[] { "Group Name" }, 
  new int[] { R.id.listview_grouplist });
  1. myListマップですか?
  2. 送信するリソース パラメータは、ure リストではなく、ure item のレイアウトを提供するリソースである必要があります。あなたはureリストのリソースを渡しています(grouplistlayoutが上で提供したレイアウトであると仮定します)。それを変更します。
  3. 同様に、パラメーターtoにマップされたリソースに記載されているテキストビューが含まれている必要がありfromます。

詳細については、 SimpleAdapter の公式ドキュメントを確認してください。

于 2012-04-11T04:47:44.690 に答える