【发布时间】:2016-05-17 04:45:37
【问题描述】:
目前我在我的应用程序中使用DataBinding,它的工作就像魅力一样。现在我有一个问题,我们可以根据 API 响应创建多个复选框吗?
就像我的模型类中有一个ArrayList,无论该数组列表的大小是多少,都应该添加很多复选框。
{"hobby": [
{
"id": "1",
"hobby": "Sports"
},
{
"id": "2",
"hobby": "Hangout"
},
{
"id": "3",
"hobby": "Skydiving"
},
{
"id": "4",
"hobby": "Scubadiving"
},
{
"id": "5",
"hobby": "Travelling"
}
]}
现在我想创建所有爱好的复选框,并想检索选定复选框的值。
谁能帮我解决这个问题?
我为此创建了 BindingAdapter,并且能够创建复选框运行时
@BindingAdapter({"bind:values"})
public static void createCheckboxes(LinearLayout layout, UserModel model) {
List<UserModel.Hobby> list = model.getHobby();
for (int i = 0; i < list.size(); i++) {
CheckBox chk = new CheckBox(layout.getContext());
chk.setText(list.get(i).getHobby());
layout.addView(chk);
}
}
现在的问题是如何获取选中的复选框值。
注意:需要用DataBinding来实现。
【问题讨论】:
-
这取决于您如何显示数据,就像您使用列表视图或其他类似的,那么您需要在自定义设计视图中添加复选框,或者如果您直接在屏幕上显示它,那么您需要自定义存储 id 和爱好的模型类。
-
自定义模型类是什么意思?你能澄清一下吗?
-
永远不要尝试这个,但你可以检查这个Blog
-
当你得到你存储的数据时???为了存储数据,您可能已经声明了像 Hobby 这样的类,您在其中设置了 getter 和 setter ID 的方法以及该类的 Hobby。
-
@MD 谢谢,很好的提示,两种方式绑定可能对我有帮助
标签: android android-databinding android-binding-adapter