2010-11-28 3 views
0

Я создаю приложение для Android, которое имеет listview, и когда пользователь нажимает на элемент listview, запускается новое действие. Я хочу передать некоторые данные в новую активность. У меня есть два названия и описания локальных переменных, которые я хочу использовать внутри этого метода. Компилятор выдает ошибку, говоря, что описания должны быть окончательным типом для использования там. Поскольку массив описаний генерируется динамически, я не могу сделать его окончательным.Android-ListView - доступ к локальным переменным в методе onitemclick

Есть ли что-то, что мне не хватает, или есть ли другой способ работать с этим?

String[] titles = someClass.getTitles(); 
String[] descriptions = someClass.getDescriptions(); 

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, titles)); 
ListView lv = getListView(); 
lv.setTextFilterEnabled(true); 
lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
     Intent i = new Intent(TitleView.this, DetailView.class); 
     i.putExtra("title", ((TextView) view).getText()); 
     i.putExtra("description", descriptions[new Long(id).intValue()]); 
     startActivity(i); 
    } 
}); 

Благодаря

ответ

1

Если указать descriptions, как final, это не значит, что не может быть построен динамически. Это означает, что после того, как descriptions загружен с помощью того, что возвращается с someClass.getDescriptions();, его нельзя переназначить на что-то другое (и, если это так, во время компиляции он выдает ошибку).

+0

Спасибо за ответ .. Мой плохой., Мой метод возвращал пустой список. – racharambola 2010-11-28 20:09:08

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