1

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

我如何填充微调器:

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>

我的数组列表类:

public class ArraylisteEtudiants {

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

    public static ArrayList<Object> getListe() {

        return listeEtudiants;
    }
}

提前致谢!:)

4

1 回答 1

1

根据Android参考:

阵列适配器

默认情况下,此类期望提供的资源 id 引用单个 TextView。如果您想使用更复杂的布局,请使用也采用字段 id 的构造函数。该字段 id 应引用较大布局资源中的 TextView。

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

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

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

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

于 2013-07-06T23:56:07.997 回答