我正在尝试创建ListView
,其中列表中的每个条目都包含LinearLayout
。我有一个我在此定义的ArrayList
:
ArrayList<LinearLayout> menuList;
。
稍后在我的代码中,我定义了
LinearLayout dailyMenuLayout = new LinearLayout(ReturnMenus.this);
,每次我完成要添加到ListView的布局时,我都会使用menuList.add(DailyMenuList)
我一直尝试使用的适配器如下 - 但每次触发它时都会崩溃应用程序。
ListView myListView = (ListView)findViewById(android.R.id.list);
ArrayAdapter<LinearLayout> adapter = new ArrayAdapter<LinearLayout>(ReturnMenus.this, R.id.linear_layout_item, menuList);
myListView.setAdapter(adapter);
这是ListView中单行的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" >
<LinearLayout
android:id="@+id/linear_layout_item"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content" >
</LinearLayout>
</LinearLayout>
有人可以告诉我如何做到这一点吗?感谢。
答案 0 :(得分:0)
您应该将数据绑定到适配器,例如字符串,而不是布局。
要了解如何使用ListView和Adapter,请查看 your-android-sdk-dir \ samples \ android-XX \ ApiDemos 中的演示项目。
答案 1 :(得分:0)
对列表中的行布局使用类似以下布局的内容,而不是当前布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
.
.
.
.
.
</LinearLayout>
如果您不确切知道要使用多少textView,请使用在应用程序中使用的最大TextView数。然后在getView()里面的适配器类中,你可以得到那些TextView。如果某些行不会使用所有这些textViews,那么将它们设置为不可见,如下所示:
TextView txtView3 = (TextView)findViewById(R.id.text3);
txtView3.setVisibility(View.GONE)
以下教程可帮助您创建listView。 http://www.vogella.com/tutorials/AndroidListView/article.html