【发布时间】:2014-03-19 17:44:16
【问题描述】:
我有一个问题如何更新使用自定义适配器的ListView,我尝试执行thread while (true). Start() 以始终监听服务器(不起作用)。
我想更新列表(状态(离线、在线..)、图像等..)。比如在我的ListView:
User 1 offine
User 2, offine
- Waiting, after 3 seconds
User 1 online
User 2, offline
我已经读到这可以通过handler 来完成:
android listview update/refresh data without closing the app
https://stackoverflow.com/questions/18030607/update-list-view-in-android
但是有没有办法在没有处理程序的情况下从服务器刷新数据?
我加载列表(我如何总是实现?):
listAdapter1 = getListData();
customListAdapter = new CustomListAdapter(getApplicationContext(), listAdapter1);
user_list.setAdapter(customListAdapter);
egisterForContextMenu(user_list);
我的全日志猫:
03-17 22:46:07.439: E/AndroidRuntime(6026): FATAL EXCEPTION: main
03-17 22:46:07.439: E/AndroidRuntime(6026): java.lang.IllegalStateException: Observer android.widget.AbsListView$AdapterDataSetObserver@4e9c7894 was not registered.
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.database.Observable.unregisterObserver(Observable.java:69)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.widget.BaseAdapter.unregisterDataSetObserver(BaseAdapter.java:42)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.widget.AbsListView.onDetachedFromWindow(AbsListView.java:2638)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.View.dispatchDetachedFromWindow(View.java:12160)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2570)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2568)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2568)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2568)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2568)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:2820)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5162)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.ViewRootImpl.die(ViewRootImpl.java:5145)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:359)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:309)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:84)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3535)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.app.ActivityThread.access$1200(ActivityThread.java:141)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.os.Handler.dispatchMessage(Handler.java:99)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.os.Looper.loop(Looper.java:137)
03-17 22:46:07.439: E/AndroidRuntime(6026): at android.app.ActivityThread.main(ActivityThread.java:5103)
03-17 22:46:07.439: E/AndroidRuntime(6026): at java.lang.reflect.Method.invokeNative(Native Method)
03-17 22:46:07.439: E/AndroidRuntime(6026): at java.lang.reflect.Method.invoke(Method.java:525)
03-17 22:46:07.439: E/AndroidRuntime(6026): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-17 22:46:07.439: E/AndroidRuntime(6026): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-17 22:46:07.439: E/AndroidRuntime(6026): at dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
-
如何填充您的 getlistData?有什么问题?请你解释一下吗?我的意思是,当你更新它时会发生什么?
-
很难解释。为什么?因为我的方法有效且无效,如果我穿上线程,告诉我:“IllegalStateException.android.w Observer ...未注册”但如果我使用按钮,它可以工作(但我不想要按钮),我想要的是使用线程,我使用“带有可运行的线程”,“执行程序”并告诉我“.android.w Observer ...未注册”,我的意思是线程不记录里面的项目,不知道怎么注册。
-
对这个问题有任何想法吗?
-
能不能写满log cat,什么意思..没有注册
-
我尝试将观察者 + 处理程序注册到线程中,当我全部工作时(线程、注册观察者 + 处理程序、+ 我的方法)调用“IllegalStateException:观察者 android...未注册。”总是称这个错误.. pff
标签: android facebook sqlite android-listview adapter