Android ListView以编程方式创建单元格
我需要在ListView的单元格中放置一系列复选框。问题是,我不知道提前多少。我在猜测,但如果我错了,请纠正我,我需要以编程方式创建它。只有几个单元,所以我不担心可重用性。我该怎么做呢Android ListView以编程方式创建单元格,android,listview,Android,Listview,我需要在ListView的单元格中放置一系列复选框。问题是,我不知道提前多少。我在猜测,但如果我错了,请纠正我,我需要以编程方式创建它。只有几个单元,所以我不担心可重用性。我该怎么做呢 没有xml只需在getView方法-->中构建单元格这是否与创建视图并添加到其中一样简单 xml,但将复选框附加到xml-->我不知道如何执行此操作 是否有某种动态xml复选框列表可供我使用 最简单、最灵活的方法是使用ArrayAdapter,并创建一个看起来像您想要的单个单元格的XML布局。将数据放入数组中,创
最简单、最灵活的方法是使用ArrayAdapter,并创建一个看起来像您想要的单个单元格的XML布局。将数据放入数组中,创建适配器并将其分配给ListView,这样列表的行数(单元格)就正确了。您还可以轻松自定义绑定,以便每个单元格都有一些基于相应数组项的信息。我始终更喜欢使用XML来分隔控制器(或控制应用程序的代码)的表示形式 您只需要创建一个列表视图并定义它的适配器。适配器将有一个XML(一行),您可以在其中设计复选框和所需的其他元素 查看,您可以在其中看到带有适配器的listview示例 --编辑: 在您的情况下,您需要以编程方式在适配器中添加复选框。只需在xml中定义一个视图,在其中可以添加复选框 --编辑2: 下面是一个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>
这只是一个例子。我没有测试代码。也许你应该使用线性布局而不是相对布局来轻松放置复选框。你想要一行多个复选框还是每行一个复选框?我想要一行多个复选框。我基本上有两种行样式,一种是复选框,另一种是选择器。对不起,我的问题模棱两可。我想要一行多个复选框。我基本上有两种行样式,一种有复选框,另一种称为选择器。啊,我曾经做过类似的事情。选项1很好,只需编写代码来创建所需的复选框。但是如果你知道在你去挑选之前你会使用最多的复选框,我会创建一个包含n个复选框的单元格,然后将最后几个复选框的可见性设置为visibility.GONE,这样就可以显示正确的数字。这是一个很好的解决方案,但我没有max。不过,我可能想考虑一下这样做!!谢谢你的回复。这正是我正在努力解决的问题。如何“在xml中定义一个视图,您可以在其中添加复选框”。
//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);