我创建了一个简单的应用程序,它将搜索词发送到 php 脚本,读取该 php 脚本根据搜索词生成的 json 响应,处理 json 响应并将 json 节点值加载到列表视图中。一切顺利,搜索完成,json 被处理,值被加载到列表视图中。
我对列表视图只有一个问题:每个项目都在不同的屏幕上。
这是我的带有 listview 的 xml,称为 listview1.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:text="@string/app_mresults"
android:textColor="@color/text_color" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
tools:listitem="@android:layout/simple_list_item_1" >
</ListView>
</LinearLayout>
这是每个项目的 xml,称为 listview1row.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:orientation="vertical" >
<TextView
android:id="@+id/ref_pnr"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/ref_partnumber"
android:textColor="@color/text_color" />
<TextView
android:id="@+id/ref_pname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ref_part"
android:textColor="@color/text_color" />
<TextView
android:id="@+id/ref_supp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ref_supplier"
android:textColor="@color/text_color" />
<TextView
android:id="@+id/ref_avail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ref_available"
android:textColor="@color/text_color" />
</LinearLayout>
我究竟做错了什么?我玩过布局宽度和高度以及列表视图的布局,什么都没有。我必须使用宽度和高度的特定组合吗?我查看了一些网站上的一些列表视图教程,从那里复制了布局细节,但仍然一无所获。我查看了 json 响应,它不包含任何断线或回车。
编辑:下面是我为 ListView 设置适配器的部分。
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting all products
pDialog.dismiss();
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
Reference2.this, productsList,
R.layout.activity_reference3, new String[] { TAG_PNR,
TAG_PNAME, TAG_PSUPP, TAG_PAVAIL},
new int[] { R.id.ref_pnr, R.id.ref_pname, R.id.ref_supp, R.id.ref_avail });
// updating listview
setListAdapter(adapter);
}
});
}