难以在listview android中显示数据

时间:2012-12-08 10:07:13

标签: android listview

我在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>

这有什么问题?请帮我弄清楚是什么让它水平显示。

这是截图:

enter image description here

2 个答案:

答案 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 ));