我正在尝试通过标记找到ImageView。我为ImageView分配了一个标签,但是当我尝试findViewWithTag时,它返回null。我读过我应该用addChilder添加childer视图,但视图没有这个功能。有人能解释我怎么能这样做吗?
ImageView principal = (ImageView) findViewById(R.id.imagen_home_0);
principal.setTag("principal");
在我传递上下文的其他类(AsyncTask)中
View noMiembros = new View(context);
ImageView er = (ImageView) noMiembros.findViewWithTag("principal");
er.setImageBitmap(result);
答案 0 :(得分:4)
将活动传递给AsyncTask并使用:
ImageView principal = (ImageView) passedActivity.findViewById(R.id.imagen_home_0);
或者从上下文获取inflater:
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");
祝福。
答案 1 :(得分:4)
您正在findViewWithTag
致电noMiembros
这是一个新观点。
您需要在ImageView的父级上调用findViewWithTag
你想要达到。
但是如果你想从AsyncTask中获取你的ImageView,只需要调用
您的活动findViewById(R.id.imagen_home_0)
。
答案 2 :(得分:0)
我相信你......误解了这两个标签。
setTag()
可以将任何对象附加到视图中,而XML标记只是一个字符串 - 我相信findViewByTag
将尝试匹配通过XML传递的标记,而不是通过代码附加的标记 - 它可能是任何物体。
为什么不将principal
imageView传递给asyncthread?