安卓:检查时,列表视图完成实现或准备 [英] Android : check when listview finish implementation or ready

查看:325
本文介绍了安卓:检查时,列表视图完成实现或准备的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题

我想点击列表视图编程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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆