Android 获取json url时屏幕为空
我试图将json解析到应用程序中,但当应用程序打开时,屏幕是空白的。我试图找到错误,但没有得到任何结果,为此使用了所有可能的代码,我认为问题在于获取json时。。请帮帮我 main_activity.xmlAndroid 获取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
<?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);
}