2013-07-06 3 views
1

У меня есть класс, который создает Arraylist. К этому классу я добавляю/удаляю объекты. У меня нет проблем, чтобы заполнить счетчик, но когда я пришел с помощью listview, он всегда пуст.Невозможно заполнить 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); 

Как я пытаюсь заполнить ListView с множественным выбором:

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

измените это 'ArrayList ' и создайте класс 'Etudiant' с помощью метода 'toString()'. Вы сможете использовать 'ArrayList ' везде, где хотите, и это решит вашу проблему. – Rob013

ответ

1

По ссылке Android:

ArrayAdapter

По умолчанию этот класс ожидает, что представленные ссылки идентификаторы ресурсов один TextView. Если вы хотите использовать более сложный макет, используйте конструкторы , который также принимает идентификатор поля. Этот идентификатор поля должен ссылаться на TextView в более крупном ресурсе макета.

Однако ссылка TextView ссылается на , она будет заполнена toString() каждого объекта в массиве. Вы можете добавить списки или массивы пользовательских объектов. Переопределите метод toString() ваших объектов на , чтобы определить, какой текст будет отображаться для элемента в списке.

Я уверен, что ваш ArrayAdapter не предоставляет метод toString(), поэтому он покажет вам пустой список.

Вы можете просто переопределить этот метод в возвращаемом объекте (попробуйте использовать более конкретный тип, а не Object).

Если это не решит вашу проблему, попробуйте настроить ArrayAdapter, расширив ArrayAdapter, персонализируя метод getView().

Смежные вопросы