我有一个创建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;
}
}
提前致谢! :)
答案 0 :(得分:1)
根据Android参考:
<强> ArrayAdapter 强>
默认情况下,此类需要提供的资源ID引用 一个TextView。如果要使用更复杂的布局,请使用 构造函数也采用字段ID。该字段ID应该 在较大的布局资源中引用TextView。
然而,TextView被引用,它将被填充 数组中每个对象的toString()。您可以添加列表或数组 自定义对象。覆盖对象的toString()方法 确定将为列表中的项目显示的文本。
我很确定您的ArrayAdapter没有提供toString()
方法,这就是为什么它会显示一个空白列表。
您只需在返回的对象中覆盖该方法(尝试使用更具体的类型而不是 Object
)。
如果这无法解决您的问题,您应该尝试自定义ArrayAdapter,扩展ArrayAdapter,个性化getView()
方法。