我需要在ListView的单元格中放置一系列复选框。问题是我提前不知道有多少。我猜,但如果我错了请纠正我,我需要以编程方式创建它。只有几个单元格,所以我不担心可重用性。我该怎么做呢?
答案 0 :(得分:2)
我总是喜欢使用XML来分隔控制器的表示(或控制应用程序的代码)。
您只需要创建一个列表视图并定义它的适配器。适配器将有一个XML(一行),您可以在其中设计复选框和您想要的其他元素......
查看documentation,您可以在其中查看带适配器的列表视图示例。
- 编辑:
在您的情况下,您需要在适配器中以编程方式添加复选框。只需在xml中定义一个视图,您可以在其中添加复选框。
- edit2: 这是一个示例XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="50dp" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/checkboxContainer" >
</RelativeLayout>
</RelativeLayout>
在你的适配器中
//get the container
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.NAME_OF_YOUR_XML, parent, false);
RelativeLayout your_container = (RelativeLayout) rowView.findViewById(R.id.checkboxContainer);
//declare your checkbox
CheckBox cb = new CheckBox(context);
cb.setText("your text");
// add the checkbox to your container
your_container.addView(cb);
这只是一个例子。我没有测试代码。也许您应该使用线性布局而不是相对布局来轻松放置复选框。
答案 1 :(得分:0)
最简单,最灵活的方法是使用ArrayAdapter并创建一个看起来像您想要的单个单元格的XML布局。将您的数据放入数组,创建适配器并将其分配给ListView,并且繁荣,您的列表具有正确的行数(单元格)。您还可以轻松自定义绑定,以便每个单元格都具有基于相应数组条目的信息。