问题
我想在onResume()之后以编程方式单击Listview并保留ListView,但我不知道何时何地应该实现点击逻辑,因为现在它强制关闭因为我早期调用函数(我检查返回视图是空)
我使用Handler()Runnable()和Thread()方法因为我认为这会在listview完成实现后对我的代码进行排队。
我该怎么办?
使用HANDLER RUNNABLE和THREAD的示例
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
DataManager dm = new DataManager(getActivity());
for (int i = 0; i < scheduleLvItems.size(); i++) {
if (dm.readPF(String.valueOf(i)).equals("open")) {
System.out.println("RESTATE -----------------> " + i);
if(isAdded())
System.out.println("TOGGLE POSITION ----> "+ i);
toggle(i, false, 0);
}
}
}
});
}
};
new Thread(runnable).start();
logcat的
6-10 15:19:24.349 314-314/com.bis.org.auInsight E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at com.bis.org.auInsight.ScreenSlidePageFragment.toggleAnimation(ScreenSlidePageFragment.java:517)
at com.bis.org.auInsight.ScreenSlidePageFragment.toggle(ScreenSlidePageFragment.java:487)
at com.bis.org.auInsight.ScreenSlidePageFragment.access$100(ScreenSlidePageFragment.java:24)
at com.bis.org.auInsight.ScreenSlidePageFragment$1$1.run(ScreenSlidePageFragment.java:117)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
第517行
listItem.getWrapper().startAnimation(resizeAnimation);
调试代码
System.out.println("DEBUG GET WRAPPER -> "+schedule_listView.getWrapper());
调查结果
06-10 15:19:24.329 314-314/com.bis.org.auInsight I/System.out﹕ DEBUG GET WRAPPER -> null
答案 0 :(得分:0)
你的问题不明确。请编辑它以准确说明您的要求并简明扼要地提供所有细节。
您收到的例外原因是getWrapper()
返回null
。这个功能是什么?你自己实现了吗?尝试调试内部并查看原因null
。
此外,我认为将Runnable
包裹在另一个Runnable
中没有意义。为什么不直接发布内部Runnable
?
也许在您调用getWrapper()
之前,单独线程中的代码没有运行,这就是它返回null
的原因?