Android ListView 在真实设备上不显示,但在模拟器上显示
Android ListView not showing on real device but on emulator does
关于简单 ListView
,我遇到了一个奇怪的问题。
在我的模拟器上一切正常,数据从 JSON API 正确加载,数据也加载到我的设备上。
问题是,在我的模拟器上,listview
被填充了,但在我的真实设备上,没有,即使有来自 JSON 的数据,为什么?
private void addItemsToListView(JSONObject message) {
try {
JSONArray jsonArray = message.getJSONArray("android");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject c = jsonArray.getJSONObject(i);
String imagePath = c.getString("path");
try {
myImages.add(new ImagesModel(i, imagePath, R.drawable.mtr));
} catch(Exception e) {
e.printStackTrace();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
遇到问题了,我已将布局从 RelativeLayout 更改为 LinearLayout,一切正常。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/view_background"
android:orientation="vertical"
android:padding="10dp"
android:weightSum="1">
<ProgressBar
android:id="@+id/progressBar1"
style="@style/Base.Widget.AppCompat.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:progress="@integer/abc_config_activityShortDur"
android:layout_centerInParent="true"
android:maxHeight="100dp"
android:maxWidth="100dp"
android:minHeight="200dp"
android:minWidth="200dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/btnUploadedActivity"
android:id="@+id/imagesListViewTitle"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imagesListView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignLeft="@+id/imagesListViewTitle"
android:layout_below="@+id/imagesListViewTitle"
android:smoothScrollbar="true" />
</LinearLayout>
关于简单 ListView
,我遇到了一个奇怪的问题。
在我的模拟器上一切正常,数据从 JSON API 正确加载,数据也加载到我的设备上。
问题是,在我的模拟器上,listview
被填充了,但在我的真实设备上,没有,即使有来自 JSON 的数据,为什么?
private void addItemsToListView(JSONObject message) {
try {
JSONArray jsonArray = message.getJSONArray("android");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject c = jsonArray.getJSONObject(i);
String imagePath = c.getString("path");
try {
myImages.add(new ImagesModel(i, imagePath, R.drawable.mtr));
} catch(Exception e) {
e.printStackTrace();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
遇到问题了,我已将布局从 RelativeLayout 更改为 LinearLayout,一切正常。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/view_background"
android:orientation="vertical"
android:padding="10dp"
android:weightSum="1">
<ProgressBar
android:id="@+id/progressBar1"
style="@style/Base.Widget.AppCompat.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:progress="@integer/abc_config_activityShortDur"
android:layout_centerInParent="true"
android:maxHeight="100dp"
android:maxWidth="100dp"
android:minHeight="200dp"
android:minWidth="200dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/btnUploadedActivity"
android:id="@+id/imagesListViewTitle"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imagesListView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignLeft="@+id/imagesListViewTitle"
android:layout_below="@+id/imagesListViewTitle"
android:smoothScrollbar="true" />
</LinearLayout>