Android-ListView - доступ к локальным переменным в методе onitemclick - PullRequest
0 голосов
/ 28 ноября 2010

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

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

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 Ответ

1 голос
/ 28 ноября 2010

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

...