我需要在GridView中获取特定的ImageView。我试过这个,但它给出了一个NullPointerException:
ImageView imageView = (ImageView) myGridView.getChildAt(1);
imageView.setSomething();
有人能告诉我如何解决这个问题吗? 谢谢
答案 0 :(得分:3)
我假设您在创建阶段(onCreate()
,onResume()
等)执行此操作,但在之后所有这些“创建”之前不会绘制视图“方法已经完成。可悲的是,没有回调onFinishedDraw()
......
但是,您可以将代码放在Runnable中:
Runnable tweakChild = new Runnable() {
@Override
public void run() {
ImageView imageView = (ImageView) myGridView.getChildAt(1);
imageView.setSomething();
}
};
并将此Runnable传递给GridView的Handler(例如在onCreate()
内):
myGridView.post(tweakChild);
答案 1 :(得分:0)
实际上,调整这些视图的经典方法是通过适配器的getView()。
请参阅此处的一些解释:
https://stackoverflow.com/a/6243248/1665128
How to find element inside a gridview in Android?
http://androidforums.com/developer-101/146035-get-element-view-gridview.html
答案 2 :(得分:0)
您需要在ImagaViewAdapter中简单地实现getItem()方法。你必须返回null。