Вопрос по android – Как установить простой адаптер для просмотра списка?

6

I have problem adding arraylist to list view, will explain about my problem here.. tell me what is wrong here... I have three linear layouts, and in the middle layout i have list view, as shown in the xml file below.. `

<code> <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>`
</code>

когда я пытаюсь добавить элементы в список с помощью адаптера массива, он работает нормально для меня, но не работает для адаптера списка. Это сбой.

<code>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);
</code>

может кто-нибудь сказать мне, что здесь не хватает?

показать вывод Logcat для Crashing Paresh Mayani

Ваш Ответ

4   ответа
5

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

Верхний должен указывать на макет списка, какandroid.R.layout.simple_list_item_1 The bottom one should be pointing to to a TextView, not a list view.

Кроме того, я не вижу, где вы привязываете адаптер к просмотру списка.

ОтSimpleAdapter документы:

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

Since: API Level 1

Constructor

Parameters
context The context where the View associated with this SimpleAdapter is running
data A List of Maps. Each entry in the List corresponds to one row in the list. The Maps contain the data for each row, and should include all the entries specified in "from"
resource Resource identifier of a view layout that defines the views for this list item. The layout file should include at least those named views defined in "to"
from A list of column names that will be added to the Map associated with each item.
to The views that should display column in the "from" parameter. These should all be TextViews. The first N views in this list are given the values of the first N columns in the from parameter.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Prady
Error: User Rate Limit Exceeded Prady
1

тогда вы должны использовать setAdapter И если вы расширяете с помощью ListActivity, тогда вы должны использовать setListAdapter, и вам не нужно использовать xml-файл.

И здесь я думаю, что вы расширяете с Activity, то нет необходимости использовать setListAdapter ..

0

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

Это заставит ваше приложение работать полностью.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededSimpleAdapter Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededListActivityError: User Rate Limit ExceededActivity?
Error: User Rate Limit Exceeded Prady
0

ListAdapter adapter = new SimpleAdapter(this,
  mylist, 
  R.layout.grouplistlayout, 
  new String[] { "Group Name" }, 
  new int[] { R.id.listview_grouplist });
is myList a map? The resource parameter that u r sending should be the resource which provides the layout of ure item and not of ure list. you are passing the resource of ure list (assuming grouplistlayout is the layout that u have provided above). change that. Similarly, the to should contain the textviews mentioned in resource mapped to from parameter.

Проверитьофициальная документация SimpleAdapter Больше подробностей

Похожие вопросы