1

嗨,伙计们,我遇到了一个 imageview 的情况,我动态设置了可绘制的源和文本,类似这样的东西,与这个问题太相似了

title.setText(items.get(position).getTitle());
icon.setImageResource(this.icons.getIcon(items.get(position).getIcon()));

在 imageview 上带有 onClickIcon 的 xml,我需要它知道哪些图像 id 可绘制来并检查它是否等于我的

<ImageView android:id="@+id/image" 
        android:onClick="onClickIcon"
         />

活动

public void onClickIcon(View v) {

    int id =  v.getId();//instead i need the int of the drawable image

    switch (id) {
    case R.drawable.info:
        //do something
        break;
    case R.drawable.links_icon:
        //do something
        break;
    case R.drawable.map_icon:
        //do something
        break;
    default:
        break;
    }
}

提前感谢大家,我也为我的英语感到抱歉,下次我会努力改进它。

干杯

4

2 回答 2

3

您可以使用 setTag() 方法..

ImageViewsetTag(R.id.ImageView,this.icons.getIcon(items.get(position).getIcon()));

并在 onClick 方法中使用 getTag(R.id.ImageView) ..

于 2011-04-09T13:01:55.413 回答
1

这是另一个类似于 CapDroid 答案的解决方法:

您可以使用 ImageView 标签创建自己的getImageResource()getDrawableId()函数。

在 onCreate() 中:

imageView0 = (ImageView) findViewById(R.id.imageView0);
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);

imageView0.setTag(R.drawable.apple);
imageView1.setTag(R.drawable.banana);
imageView2.setTag(R.drawable.cereal);

然后,如果您愿意,可以使用获取可绘制 id 的简单函数:

private int getImageResource(ImageView iv) {
    return (Integer) iv.getTag();
}

我希望这对您有所帮助,它确实使我的工作更轻松。

于 2013-01-23T08:00:48.947 回答