如果不是从按钮调用,则不显示GridView

时间:2013-04-18 12:53:15

标签: android gridview universal-image-loader

我是Java,Android等新手。我遇到了一个我无法弄清楚的问题。

我的GridView由基于ImageAdapter的{​​{1}}填充。 当我单击按钮启动方法时,

UniversalImageLoader

public void buttonsearch(View view) { imagesearch(); } 通常会显示图片。 但是当我直接调用它时。

GridView

它根本没有显示任何内容。通过我的“调试”消息,我可以看到imagesearch("somestring"); 正在运行。当我点击按钮时,ImageAdapter开始按内容填充。

GridView

编辑:好的问题解决后会解释

1 个答案:

答案 0 :(得分:0)

好的,所以我尝试在实际绘制GridView之前获取尺寸。因此,在我OnCreate()调用此方法时,只有在GridView绘制后才会启动我的代码。

public void waiter()
    {
        final GridView gridview1 = (GridView) findViewById(R.id.gridViewImages);

        gridview1.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() 
          {
                @Override
                public void onGlobalLayout() 
                {
                    gridview1.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                    gwight = gridview1.getWidth(); 
                    ghight = gridview1.getHeight();
                        try {
                    imagesearch(wordfromprev);
                    } catch (ClientProtocolException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (ExecutionException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
          });
    }