嗨,我有以下问题:
data.clear();
data.addAll(datasource.getFilesInFolder()); //gets the data from Sqlite database
adapter.notifyDataSetChanged();生成此logCat输出:
12-19 14:34:30.864: W/Binder(986): Caught a RuntimeException from the binder stub implementation.
12-19 14:34:30.864: W/Binder(986): java.lang.NullPointerException
12-19 14:34:30.864: W/Binder(986): at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
12-19 14:34:30.864: W/Binder(986): at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
12-19 14:34:30.864: W/Binder(986): at android.os.Binder.execTransact(Binder.java:404)
12-19 14:34:30.864: W/Binder(986): at dalvik.system.NativeStart.run(Native Method)
12-19 14:34:30.864: W/InputMethodManagerService(757): Got RemoteException sending setActive(false) notification to pid 30040 uid 10174这个例外会导致死亡..。
嗯,我意识到也许是相反的,赢了死亡导致了这个日志输出,因为在日志WINDEATH之前,我不知道为什么会发生windeath。
我的适配器是扩展的BaseAdapter,没有什么特别之处。非常奇怪的是:
上述代码段位于自定义监听器中,该监听器是从另一个类触发的。当我把有问题的部分放在听者之外时,效果很好。
我是指Caught a RuntimeException from the binder stub implementation吗?这会是数据库的问题吗?或者是我的自定义听众?有人知道怎么回事吗?
发布于 2014-02-21 11:53:25
发布于 2014-02-26 09:14:21
您应该直接将数据添加到适配器中。
而不是做
data.clear();
data.addAll(datasource.getFilesInFolder()); //gets the data from Sqlite database
adapter.notifyDataSetChanged();你应该这么做
if(adapter!=null)
{
adapter.clear();
adapter.addAll(datasource.getFilesInFolder()); //gets the data from Sqlite database
adapter.notifyDataSetChanged();
}我认为适配器是空的,这在您的情况下造成了问题。
https://stackoverflow.com/questions/20683255
复制相似问题