ListView с использованием String Array - PullRequest
2 голосов
/ 22 октября 2010

Как я могу дать значения ListView?Когда я пытаюсь создать ListView с использованием массива String, мой процесс неожиданно останавливается.

     public String[] items_list=new String[100];
     items_list[0]="11";
     items_list[1]="22";
     items_list[2]="33";
     items_list[3]="44";
     ListView listitems=(ListView)findViewById(R.id.list);
     adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items_list);
     listitems.setAdapter(adapter);

Но если я инициализирую массив строк с помощью объявления ite, он работает.Почему это случилось?

     public String[] items_list={"chocolate","lime juice","icecreame"};

Пожалуйста, помогите мне ... Спасибо ...

Ответы [ 2 ]

3 голосов
/ 22 октября 2010

Ну, вы создаете массив из 100 объектов в

 public String[] items_list=new String[100];
 items_list[0]="11";
 ...
 items_list[3]="44";

Но вы заполняете только первые 4 элемента, это означает, что оставшиеся 96 строк равны нулю. Это может вызвать ваши ошибки, когда ListView пытается заполнить список, так как предполагает, что в списке 100 элементов. Попробуйте выделить столько памяти, сколько необходимо на new String[100];

0 голосов
/ 22 октября 2010

Правильный ответ Ценга о вероятной причине. ListView будет видеть размер массива как 100 и попытается использовать нулевые значения в остальных элементах.

Используйте любой подкласс List<String> (например, ArrayList<String> или Vector<String>) для хранения ваших данных, и адаптер будет работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...