将数据传递给OnItemClickListener?
|
DataAccess data = new DataAccess(db);
List<String> countries = data.getCountries();
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, countries));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
如何从onItemClick
方法内部传递和访问data
变量?
没有找到相关结果
已邀请:
2 个回复
贸会
,并且您应该能够在onItemClick中使用
进行引用
盛梯獭八搽
我们这样做是有原因的。当您调用\“ new OnItemClickListener()\”时,实际上是在创建一个匿名内部类。生成的字节码实际上不会转换为内部类,JVM对此内部类不了解。 内部类文件被转换为单独的类文件,该类文件包含外部类文件和内部类文件的组合,并用\“ $ \”符号分隔。由于这种情况是匿名的,因此使用整数来标识内部类。
在上述情况下,当在Outer类中创建变量时,inner类将对此一无所知。 但是,当您将其标记为final时,内部类(实际类文件)将在其中包含对外部类变量的引用的隐藏变量。
希望这可以帮助。