无法在多选列表视图中填充arraylist

时间:2013-07-06 23:25:38

标签: java android listview arraylist multiple-choice

我有一个创建Arraylist的班级。通过这个类,我添加/删除对象。 填充微调器没有问题,但是当我使用listview时,它总是空的。

我如何填充一个微调器:

final ArrayAdapter<Object> adapterEleves;
adapterEleves = new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_1, ArraylisteEtudiants.getListe());

Spinner spinnerEtudiants = (Spinner) findViewById(R.id.spinnerEtudiants);
spinnerEtudiants.setAdapter(adapterEleves);
adapterEleves.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

我如何尝试使用多个选项填充列表视图:

    final ArrayAdapter<Object> adapterEleves;
    adapterEleves = new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_multiple_choice, ArraylisteEtudiants.getListe());

    ListView listEtudiants = (ListView) findViewById(R.id.afficherListeEtudiants);
    listEtudiants.setAdapter(adapterEleves);
    adapterEleves.setDropDownViewResource(android.R.layout.simple_list_item_multiple_choice);

我的xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" >

    <ListView
      android:id="@+id/afficherListeEtudiants"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:choiceMode="multipleChoice" >
    </ListView>

</LinearLayout>

我的arraylist课程:

public class ArraylisteEtudiants {

    final static ArrayList<Object> listeEtudiants = new ArrayList<Object>();

    public static ArrayList<Object> getListe() {

        return listeEtudiants;
    }
}

提前致谢! :)

1 个答案:

答案 0 :(得分:1)

根据Android参考:

<强> ArrayAdapter

  

默认情况下,此类需要提供的资源ID引用   一个TextView。如果要使用更复杂的布局,请使用   构造函数也采用字段ID。该字段ID应该   在较大的布局资源中引用TextView。

     

然而,TextView被引用,它将被填充   数组中每个对象的toString()。您可以添加列表或数组   自定义对象。覆盖对象的toString()方法   确定将为列表中的项目显示的文本。

我很确定您的ArrayAdapter没有提供toString()方法,这就是为什么它会显示一个空白列表。

您只需在返回的对象中覆盖该方法(尝试使用更具体的类型而不是 Object )。

如果这无法解决您的问题,您应该尝试自定义ArrayAdapter,扩展ArrayAdapter,个性化getView()方法。