Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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/4/json/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 获取json url时屏幕为空_Android_Json_Httpurlconnection - Fatal编程技术网

Android 获取json url时屏幕为空

Android 获取json url时屏幕为空,android,json,httpurlconnection,Android,Json,Httpurlconnection,我试图将json解析到应用程序中,但当应用程序打开时,屏幕是空白的。我试图找到错误,但没有得到任何结果,为此使用了所有可能的代码,我认为问题在于获取json时。。请帮帮我 main_activity.xml <?xml version="1.0" encoding="utf-8"?> <ListView android:id="@+id/list" xmlns:android="http://schemas.android.com/apk/res/android

我试图将json解析到应用程序中,但当应用程序打开时,屏幕是空白的。我试图找到错误,但没有得到任何结果,为此使用了所有可能的代码,我认为问题在于获取json时。。请帮帮我

main_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<ListView
    android:id="@+id/list"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="examle.android.com.networkexample.MainActivity">
</ListView>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:padding="15dp"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
    android:id="@+id/login"
    tools:text="USER_LOGIN"
    android:textSize="18sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:paddingTop="2dp"
    android:id="@+id/type"
    tools:text="USER_TYPE"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout>

您可能需要修改onPostExecute方法中的If语句。仅当用户不为null且用户为空时,才更新适配器。如果适配器不为空,则应更新适配器

if(users != null && users.isEmpty()){
      mAdapter.addAll(users);
 }
if(users != null && users.isEmpty()){
      mAdapter.addAll(users);
 }
To

 if(users != null && !users.isEmpty()){
        mAdapter.addAll(users);
  }

修改
users.isEmpty()
。该条件永远不会满足。您必须更改它,还必须调用
mAdapter.notifyDataSetChanged()


从一开始,适配器就用空数据初始化。完成异步任务后,需要通过通知更新UI

 @Override
    protected void onPostExecute(List<User> users) {
        // Clear the adapter of previous earthquake data
        mAdapter.clear();

        // If there is a valid list of {@link user}s, then add them to the adapter's
        // data set. This will trigger the ListView to update.

        if(users != null && users.isEmpty()){
            mAdapter.addAll(users);
        // After adding user to the adapter, Notify adapter for UI update
           mAdapter.notifyDataSetChanged();
        }
    }
@覆盖
受保护的void onPostExecute(列出用户){
//清除先前地震数据的适配器
mAdapter.clear();
//如果存在有效的{@link user}列表,则将它们添加到适配器的
//数据集。这将触发ListView更新。
if(users!=null&&users.isEmpty()){
mAdapter.addAll(用户);
//将用户添加到适配器后,通知适配器进行UI更新
mAdapter.notifyDataSetChanged();
}
}

这将使用用户数据更新UI。

代码处理了此更改


您可能需要修改onPostExecute方法中的If语句。仅当用户不为null且用户为空时,才更新适配器。如果适配器不为空,则应更新适配器

if(users != null && users.isEmpty()){
      mAdapter.addAll(users);
 }
if(users != null && users.isEmpty()){
      mAdapter.addAll(users);
 }
To

 if(users != null && !users.isEmpty()){
        mAdapter.addAll(users);
  }

无需调用
mAdapter.notifyDataSetChanged()
查看此处添加所有方法recyclerView是否有类似行为@拉古南丹
 if(users != null && !users.isEmpty()){
        mAdapter.addAll(users);
  }
if(users != null && !users.isEmpty()){
                mAdapter.addAll(users);
                mAdapter.notifyDataSetChanged();
            }
 @Override
    protected void onPostExecute(List<User> users) {
        // Clear the adapter of previous earthquake data
        mAdapter.clear();

        // If there is a valid list of {@link user}s, then add them to the adapter's
        // data set. This will trigger the ListView to update.

        if(users != null && users.isEmpty()){
            mAdapter.addAll(users);
        // After adding user to the adapter, Notify adapter for UI update
           mAdapter.notifyDataSetChanged();
        }
    }
if(users != null && users.isEmpty()){
      mAdapter.addAll(users);
 }
To

 if(users != null && !users.isEmpty()){
        mAdapter.addAll(users);
  }