#android
#Android
Вопрос:
Я работал над пониманием ArrayAdapters в течение последних 2 дней, но, похоже, не могу полностью разобраться с ними.
Следующий код функционален как есть.
private void initAdapter(ArrayList<String> aL) {
for (String s : aL) {
aL.add(s);
}
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, aL) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row;
if (null == convertView) {
row = mInflater.inflate(R.layout.list_item, null);
} else {
row = convertView;
}
TextView tv = (TextView) row.findViewById(android.R.id.text1);
tv.setText(getItem(position));
return row;
}
});
}
Я пытаюсь превратить это в метод, в котором я могу использовать ArrayAdapter для нескольких массивов и помещать их в отдельные ListViews.
Когда я пытаюсь изменить метод на
private void initAdapter(ArrayList<String> aL, ListView L) {
и
L.setAdapter(new ArrayAdapter<String>(this. R.layout.list_item, aL) {
Я получаю ошибку при компиляции.
Кроме того, почему вам не нужно указывать ListView для вашего первого ArrayAdapter. Это просто автоматически ссылается на что-либо с идентификатором ‘list’?
Я совершенно сбит с толку и застрял на этом и был бы очень благодарен за хорошо объясненный ответ.
Ответ №1:
Я предполагаю, что этот код является частью ListActivity
. В этом случае метод setListAdapter()
автоматически ссылается на список по идентификатору android.R.id.list
. Для того, что происходит с адаптером, потребуется трассировка стека из logcat, чтобы увидеть, какая ошибка там возникает.