安卓:检查时,列表视图完成实现或准备 [英] Android : check when listview finish implementation or ready
问题描述
问题
我想点击列表视图编程onResume(后),并保留ListView的,但我不知道什么时候,我应该在哪里实现点击逻辑,因为现在它强制关闭,因为我调用函数来早(我已经检查返回查看为null)
我用的处理程序()的Runnable()和()的线程方法监守我认为这将排队的ListView完成实施后,我的code。
我应该怎么做?
使用处理程序RUNNABLE和线程的例子
最后的处理程序处理程序=新的处理程序();
可运行可运行=新的Runnable(){
@覆盖
公共无效的run(){
handler.post(新的Runnable(){
@覆盖
公共无效的run(){
DataManager的DM =新的DataManager(getActivity());
的for(int i = 0; I< scheduleLvItems.size();我++){
如果(dm.readPF(将String.valueOf(ⅰ))。等于(开放)){
的System.out.println(重述----------------->中+ I);
如果(isAdded())
的System.out.println(跳变位置---->中+ I);
切换(I,假,0);
}
}
}
});
}
};
新的线程(可运行)。开始();
的logcat
6-10 15:19:24.349 314-314 / com.bis.org.auInsight E / AndroidRuntime:致命异常:主要
显示java.lang.NullPointerException
在com.bis.org.auInsight.ScreenSlidePageFragment.toggleAnimation(ScreenSlidePageFragment.java:517)
在com.bis.org.auInsight.ScreenSlidePageFragment.toggle(ScreenSlidePageFragment.java:487)
在com.bis.org.auInsight.ScreenSlidePageFragment.access $ 100(ScreenSlidePageFragment.java:24)
在com.bis.org.auInsight.ScreenSlidePageFragment $ 1 $ 1.run(ScreenSlidePageFragment.java:117)
在android.os.Handler.handleCallback(Handler.java:587)
在android.os.Handler.dispatchMessage(Handler.java:92)
在android.os.Looper.loop(Looper.java:123)
在android.app.ActivityThread.main(ActivityThread.java:4627)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:521)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
在dalvik.system.NativeStart.main(本机方法)
在行517
listItem.getWrapper()startAnimation(resizeAnimation)。
DEBUG code
的System.out.println(DEBUG GET WRAPPER - >中+ schedule_listView.getWrapper());
DEBUG结果
06-10 15:19:24.329 314-314 / com.bis.org.auInsight I / System.out的:DEBUG GET WRAPPER - >空值
您的问题并不清楚。请编辑它来说明你问什么,简明扼要提供的所有细节。
您收到的异常是由一个事实,即 getWrapper()
收益空
引起的。这是什么功能?你自己实现它?尽量里面调试,看看它为什么空
。
另外,我看到在另一个的Runnable
包装在的Runnable
没有意义的。为什么不张贴内的Runnable
直接?
也许你打电话之前在单独的线程中的code不运行 getWrapper()
,这就是为什么它返回空
?
PROBLEM
I want to click Listview Programmatically after onResume() and retain ListView but I don't know when and where should I implement click logic because now it Force close because I call function to early (I have check return view is null)
I use Handler() Runnable() and Thread() method becuase I think that this will queue my code after listview finish implementation.
What should I do??
EXAMPLE OF USING HANDLER RUNNABLE and 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)
On line 517
listItem.getWrapper().startAnimation(resizeAnimation);
DEBUG CODE
System.out.println("DEBUG GET WRAPPER -> "+schedule_listView.getWrapper());
DEBUG RESULT
06-10 15:19:24.329 314-314/com.bis.org.auInsight I/System.out﹕ DEBUG GET WRAPPER -> null
Your question isn't clear. Please edit it to state exactly what you're asking and provide all details concisely.
The exception you're receiving is caused by the fact that getWrapper()
returns null
. What is this function? Did you implement it yourself? Try to debug inside and see why it's null
.
Also, I see no point in wrapping a Runnable
in another Runnable
. Why not post the inner Runnable
directly?
Maybe the code in the separate thread doesn't run before you call getWrapper()
and that's why it returns null
?
这篇关于安卓:检查时,列表视图完成实现或准备的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!