【发布时间】:2013-02-27 13:48:19
【问题描述】:
我正在使用扩展 BaseAdapter 的类来填充我的布局上的 gridView。 当我单击 gridView 的元素之一时,我想获取单击的项目的名称(其中名称是 R.drawable.name 中的名称)
这就是我写的
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Intent intent = new Intent(ChoseActivity.this,
GameActivity.class);
String ab = getResources().getResourceEntryName(arg1.getId());
intent.putExtra("AB", ab);
startActivity(intent);
}
}
我有这个错误
02-27 13:46:49.285: E/AndroidRuntime(24862): FATAL EXCEPTION: main
02-27 13:46:49.285: E/AndroidRuntime(24862): android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff
02-27 13:46:49.285: E/AndroidRuntime(24862): at android.content.res.Resources.getResourceEntryName(Resources.java:1499)
02-27 13:46:49.285: E/AndroidRuntime(24862): at com.example.kersplatt.ChoseActivity$1.onItemClick(ChoseActivity.java:36)
02-27 13:46:49.285: E/AndroidRuntime(24862): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
02-27 13:46:49.285: E/AndroidRuntime(24862): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
我不明白,因为点击的图片在我的资源中
EDIT1
我在我的适配器的 getView 中尝试了这个,但仍然有同样的错误:
ImageView imageView = new ImageView(mContext);
imageView.setTag(R.drawable.currentimage);
【问题讨论】:
-
视图的 id 与其持有的可绘制资源无关。您可以将 id 设置为视图,然后通过在活动中使用例如 findViewById(id) 来访问它们。在您的情况下,如果您想检索添加到视图中的可绘制对象,那么您首先需要将视图转换为您使用的视图类型,例如 ImageView ,然后才检索可绘制对象的 id 并获取资源。
-
这里的id指向你要查找的视图的标签。
-
我应该怎么做才能找到drawable的名称?
-
元素是imageview吗???
-
@lokoko: 即使我在适配器中执行 imageView.setTag(R.drawable.currentimage) ,我仍然有同样的错误
标签: android gridview onitemclicklistener