Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android IllegalStateException:适配器的内容已更改,但ListView未收到通知?_Android_Android Listview_Android Wifi - Fatal编程技术网

Android IllegalStateException:适配器的内容已更改,但ListView未收到通知?

Android IllegalStateException:适配器的内容已更改,但ListView未收到通知?,android,android-listview,android-wifi,Android,Android Listview,Android Wifi,我正在使用的应用程序中,我必须显示可用wifi的自定义列表。为此,我在重写的方法中获取列表: public void onScanComplete(List<ScanResult> results) {} 我在UI线程内发出通知,如下所示:- private void notifyAdapter() { mActivity.runOnUiThread(new Runnable() { @Override public void run()

我正在使用的应用程序中,我必须显示可用wifi的自定义列表。为此,我在重写的方法中获取列表:

public void onScanComplete(List<ScanResult> results) {}
我在UI线程内发出通知,如下所示:-

private  void notifyAdapter()  {
   mActivity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            homeWifiListAdapter.notifyDataSetChanged();
            }
    });
}

非常感谢您的任何建议。

要更新listview中的一行,您可以尝试一下->


这个技巧是Roman Guy发明的

也许它缺少了将新数据传递给listview的部分?@Simone Leoni感谢您的回复,实际上列表是全局列表,没有更改创建的列表。connectTOSignIn方法会改变您的mItems吗?但是我认为您不能这样做,您正在修改listview中存储和使用的内容。将新数据传递到适配器应该可以解决此问题!然后打电话给著名的notifyDataSetChanged@SimoneLeoni不,我没有在connectTOSignIn方法中执行任何与列表相关的操作。-重复我自己:-我认为您不能这样做,您正在修改listview中存储和使用的内容。将新数据传递到适配器应该可以解决此问题!然后打电话给著名的“改变”
[null]=java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make sure your adapter calls notifyDataSetChanged() when its content changes. [in ListView(2131624395, class android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]
at android.widget.ListView.layoutChildren(ListView.java:1555)
at android.widget.AbsListView.onTouchMove(AbsListView.java:3549)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:3424)
at android.view.View.dispatchTouchEvent(View.java:7706)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2210)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2069)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1516)
at android.app.Activity.dispatchTouchEvent(Activity.java:2485)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2017)
at android.view.View.dispatchPointerEvent(View.java:7886)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3956)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3835)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3401)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3451)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3420)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3527)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3428)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3584)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3401)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3451)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3420)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3428)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3401)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5604)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5584)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5555)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5684)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(Native Method)
private  void notifyAdapter()  {
   mActivity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            homeWifiListAdapter.notifyDataSetChanged();
            }
    });
}