android Listview没有显示任何内容

时间:2014-03-19 00:13:19

标签: java android listview

我正在开发第一个基本的Android应用程序作为大学项目,我有一个名单的数组列表。我希望将它放入ListView。当我在xml文档下引入ListView时,我遇到的问题就是什么都没有出现。我没有获得item1,sub item 1等的基本模板。 然后当我设置数组在列表视图中播放时仍为空列表。下面我有xml文档

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="277dp"
        android:id="@+id/listView" android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" android:layout_marginTop="7dp"
        android:layout_alignParentBottom="true"/>
</RelativeLayout>

然后这是java代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    populateListView();
}

private void populateListView() {
    String[] myItems = {"frank","george","alice", "anna"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.main, myItems);
    ListView list = (ListView)findViewById(R.id.listView);
    list.setAdapter(adapter);
}

3 个答案:

答案 0 :(得分:3)

您的问题是,您有两种不同用途的布局R.layout.main 您将内容视图设置为setContentView(R.layout.main);所在的ListView,但您也将此布局与适配器一起用作new ArrayAdapter<String>(this, R.layout.main, myItems);
因此,使用您的代码,您没有任何项目布局来显示您的数组myItems。您需要为您的适配器创建另一个布局R.layout.item_layout,其中TextView(或使用类似android.R.layout.simple_list_item_1的Android布局)。

注意:要避免ListView出现一些错误,您还必须将身高设置为match_parentfill_parent < / p>

答案 1 :(得分:2)

尝试使用适配器:

ArrayAdapter<String> adapter= 
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myItems);

适配器必须为TextView充气。您可以在XML中创建自己的TextView(如果要自定义它)。

然后它将是:

ArrayAdapter<String> adapter= 
new ArrayAdapter<String>(this, R.layout.yourcustomtextview, myItems);

答案 2 :(得分:0)

Android中的默认数组适配器将行的布局作为第二个参数。

ArrayAdapter构造函数更改为以下内容:

ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items)