注意:这段代码适用于我的应用程序中的一个片段。相同的适配器,但有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);
答案 0 :(得分:2)
与答案无关但是 这只是知识共享和解决更糟糕的内存管理错误
避免依赖注入框架
正如Google官方网站所说。
https://developer.android.com/training/articles/memory.html#DependencyInjection
答案 1 :(得分:1)
@meowkittycat
使用您的代码段,我可以在“ activity_grid ”对象上说出NPE,检查您是否初始化了活动中的对象。
答案 2 :(得分:0)
呃,我今天已经在这方面工作了很长时间,以至于我没有注意到activity_grid没有被注入。我为这个愚蠢的问题道歉并感谢您的提示。我想最长的时间是我的适配器或我不知道的一些线程。