Android-ListView-在onitemclick方法中访问局部变量

时间:2010-11-28 07:41:42

标签: android variables listview local listviewitem

我正在构建一个具有listview的android应用程序,当用户点击listview项时,就会启动一个新活动。我想将一些数据传递给新活动。我有两个局部变量标题和描述,我想在该方法中使用。编译器抛出一个错误,说明描述应该是在那里使用的最终类型。因为说明数组是动态生成的,所以我不能让它成为最终的。

我有什么遗漏或有其他方法可以解决这个问题吗?

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 个答案:

答案 0 :(得分:1)

如果您将descriptions指定为final,则表示无法动态构建它。 这意味着一旦descriptions加载了从someClass.getDescriptions();返回的内容,就无法将其重新分配给其他内容(如果是这种情况,则会在编译时抛出错误)。