我正在开发第一个基本的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);
}
答案 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_parent
或fill_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)