0

I'm trying to find an ImageView by tag. I assign a tag for the ImageView, but when I try to findViewWithTag, it returns null. I read that I should add to the view the childer with addChilder, but the view doesnt have this function. Can someone explaim to me how I can do this?

ImageView principal = (ImageView) findViewById(R.id.imagen_home_0);
    principal.setTag("principal");

in other class(AsyncTask) that i pass the context

        View noMiembros = new View(context);

        ImageView er = (ImageView) noMiembros.findViewWithTag("principal");
        er.setImageBitmap(result);
4

3 回答 3

4

将 Activity 传递给 AsyncTask 并使用:

ImageView principal = (ImageView) passedActivity.findViewById(R.id.imagen_home_0);

或者像这样从上下文中获得充气机:

LayoutInflater inflater = LayoutInflater.from(context);
View row = inflater.inflate(R.layout.your_viw_that_contains_that_image, parent, false);

ImageView principal = (ImageView) row.findViewById(R.id.imagen_home_0);

//or by tag 
principal = (ImageView) row.findViewWithTag("principal");

最好的祝愿。

于 2013-06-21T10:58:54.147 回答
4

您正在调用findViewWithTag哪个noMiembros 是新视图。

您需要调用findViewWithTag您尝试访问的 ImageView 的父级。

但是,如果您想从 AsyncTask 中获取 ImageView,只需调用 findViewById(R.id.imagen_home_0) 您的 Activity。

于 2013-06-21T10:59:37.767 回答
0

我相信你……弄错了这两个标签。

setTag()可以将任何对象附加到视图,而 XML 标记只是一个字符串——我相信它findViewByTag会尝试匹配通过 XML 传递的标记,而不是通过代码附加的标记——因为它可以是任何对象。

为什么不直接将principalimageView 传递给异步线程?

于 2013-06-21T10:50:48.543 回答