【问题标题】:How to get the drawable name from my image in a list view Android如何在列表视图Android中从我的图像中获取可绘制名称
【发布时间】:2013-06-30 18:26:38
【问题描述】:

好的,我有一个带有自定义列表视图适配器的列表视图,每个列表项都有一个“图标”。当我单击列表项时,我可以轻松获取所有文本字段名称,例如名称地址等。 我在图像视图中有他们的图标(显然每个图标都在同一个 id 中,因为它在列表视图中被重用)。我的问题是当我单击列表项时如何获取 r.drawable.resource (即 pic1)。并将其传递给我的下一个意图(我知道如何使用捆绑附加功能)。

我一直在搜索,我可以设置资源但无法从图像视图中检索它。 Passing the Image in PutExtra in Android

我看到的大多数答案都类似于上面的链接,这假设您对每个图像视图都有不同的 id,或者您想将图像视图转换为字节(不想这样做)。有谁知道如何从图像视图中获取 r.drawable?

ImageView myimage = (ImageView) view.findViewById(R.id.myrate);

【问题讨论】:

    标签: android listview resources imageview drawable


    【解决方案1】:

    设置imageView的drawable时,可以设置ImageView的tag:

    imageView.setTag(R.drawable.my_drawable);
    imageView.setDrawableResource(R.drawable.my_drawable);
    

    及以后使用:

    imageView.getTag();
    

    【讨论】:

    • 但我正在使用一个图像视图并将其重新用于列表视图..这不起作用...
    • 为什么不起作用?当重用 imageView 时,你设置它的 drawable。所以在同一点设置它的标签(这将覆盖它以前的标签),当点击一个项目时,检索 imageView 的标签将检索最新的可绘制 id
    • 是的,明白了。所以当我点击第一个项目时,它会从项目 10 中获取标签(假设列表中有 10 个项目)。
    • 为什么要从项目 10 中获取标签?您正在使用适配器,所以视图被重用,对吗?因此,每次在 imageView 中设置新图像(一旦显示项目),您都会为该图像视图设置一个新标签。所以当用 imageView 1 显示项目 1 时,标签是 R.drawable.image1,而当重用项目时,例如用 imageView 1 显示项目 12,标签是 R.drawable.image12。
    • 是的,我正在重新使用视图..我要尝试一下。从我读到的内容来看,当你这样做时,标签只是“覆盖”。但我不是 Java 开发人员,我是 JS,所以概念完全不同。会尝试,如果有效,我会接受你,谢谢
    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多