在活动中的runnable中调用setAdapter的NullPointerException

时间:2015-02-25 09:52:49

标签: java android

注意:这段代码适用于我的应用程序中的一个片段。相同的适配器,但有getActivity()。getApplicationContext()而不是Activity.this。

我正在尝试在一个活动中做同样的事情,但我一直在setAdapter线上获得NPE。假设Arraylist项目由不同的线程填充。

                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        //test if item Arraylist has stuff in it
                        for (MainGridItem t: item) {
                            System.out.println(t.getUrl()+t.getName()+t.getLinkUrl());
                        }

                        SwingBottomInAnimationAdapter swingBottomInAnimationAdapter = new SwingBottomInAnimationAdapter(new GridViewAdapter(GridViewActivity.this, item));
                        swingBottomInAnimationAdapter.setAbsListView(activity_grid);

                        assert swingBottomInAnimationAdapter.getViewAnimator() != null;
                        swingBottomInAnimationAdapter.getViewAnimator().setInitialDelayMillis(DELAY);

                        activity_grid.setAdapter(swingBottomInAnimationAdapter);

3 个答案:

答案 0 :(得分:2)

与答案无关但是 这只是知识共享和解决更糟糕的内存管理错误

避免依赖注入框架

正如Google官方网站所说。

https://developer.android.com/training/articles/memory.html#DependencyInjection

答案 1 :(得分:1)

@meowkittycat

使用您的代码段,我可以在“ activity_grid ”对象上说出NPE,检查您是否初始化了活动中的对象。

答案 2 :(得分:0)

呃,我今天已经在这方面工作了很长时间,以至于我没有注意到activity_grid没有被注入。我为这个愚蠢的问题道歉并感谢您的提示。我想最长的时间是我的适配器或我不知道的一些线程。