注意:这段代码适用于我的应用程序中的一个 fragment 。相同的适配器,但具有 getActivity().getApplicationContext() 而不是 Activity.this。
我试图在 Activity 中做同样的事情,但我不断在 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);
最佳答案
与答案无关,但 这只是知识共享并解决更严重的内存管理错误
避免依赖注入(inject)框架
正如 Google 官方网站所述。
https://developer.android.com/training/articles/memory.html#DependencyInjection
关于java - 在 Activity 中的可运行状态中调用 setAdapter 引发 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715869/