如何在GridView中找到ImageView?

时间:2012-10-28 19:09:38

标签: android android-imageview android-view android-gridview

我需要在GridView中获取特定的ImageView。我试过这个,但它给出了一个NullPointerException:

ImageView imageView = (ImageView) myGridView.getChildAt(1);
imageView.setSomething();

有人能告诉我如何解决这个问题吗? 谢谢

3 个答案:

答案 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。