[英]android Listview not showing anything
我正在作为大学项目开发第一个基本的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);
}
您的问题是您具有相同的布局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
尝试为您的适配器:
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);
Android中的默认数组适配器将行的布局作为第二个参数。
将您的ArrayAdapter
构造函数更改为如下所示:
ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.