如何对imageView使用setId()

时间:2013-12-22 23:33:46

标签: android

我在GridViewAdapter类中创建了一个imageView:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // Try to reuse the views
    ImageView view = (ImageView) convertView;
    boolean checked = (mCheckBox==null)?false:(((CheckBox)  mCheckBox).isChecked());
    // if convert view is null then create a new instance else reuse it
    if (view == null) {
        view = new ImageView(Context);
        //view.setTag(ViewId(), "imageViewGRID");
        view.setId(R.id.1);
        Log.d("GridViewAdapter", "new imageView added");
    }

但是我不确定如何使用.setId以便我可以在此行的另一个类中使用此imageView:

ImageView imageView1 = (ImageView)v.findViewById(R.id.1);

有人可以清楚这是如何运作的吗?

请注意我也尝试过:

view.setTag("imageView4Grid");

ImageView imageView1 = (ImageView)v.findViewWithTag("imageView4Grid");

但是我收到了错误

1 个答案:

答案 0 :(得分:3)

Heyyy,请查看此链接:Android: View.setID(int id) programmatically - how to avoid ID conflicts?

从API 17开始,View类引入了静态方法generateViewId(),它将生成一个适合在setId(int)中使用的值。

setId(int id) simlpy将正整数作为输入。 您正在尝试从资源中获取ID。这是你正在尝试做的事:How to set Id of dynamic created layout?