我在listview中显示数据时遇到问题。它没有垂直显示。
这是我的代码:
private ListView lv;
private ArrayList<String> results = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.meal_result);
BreakFastLog info = new BreakFastLog(this);
info.open();
String data1 = info.getMealNameData();
//String data2 = info.getServingData();
results.add(data1);
lv = (ListView) findViewById (R.id.lvBF);
lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, results));
lv.setTextFilterEnabled(true);
info.close();
}
和我的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lvBF"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
这有什么问题?请帮我弄清楚是什么让它水平显示。
这是截图:
答案 0 :(得分:0)
在xml中尝试<RelativeLayout>
而不是<LinearLayout>
。并将其添加到列表视图
<ListView
android:id="@id+/yourListViewid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:layout_alignParentTop="true" >
</ListView>
答案 1 :(得分:0)
完成代码后,
您只有一个字符串值String data1 = info.getMealNameData();
在ArrayList<String> results
中。结果将添加到列表适配器中。
因此ListView
中只显示一行。
因此,您必须为所有用户输入而不是String[]
输入String data1
,并将String[]
传递给列表适配器。
<强>更新强>
String data1 = info.getMealNameData();
String[] inputData = data1.split(" ");
lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, inputData ));