在CheckBox上添加ListView项目检查具有不同的格式

时间:2012-02-12 14:24:00

标签: android listview

我通过ArrayAdapter使用带有Checkbox的ListActivity。
我要做的是在选中checkBox时,使用不同的布局(仅限TextView)添加ListView项动态。 它也应该在再次未经检查后消失。

CheckBox unchecked:

+----------------------+
|  cb -- some text --  |
+----------------------+
|   - new  Heading -   |
+----------------------+
|         etc.         |
+----------------------+

CheckBox checked:

+----------------------+
|  cb -- some text --  |
+----------------------+
|  ---  TextView  ---  |
+----------------------+
|  ---  TextView  ---  |
+----------------------+
|   - new  Heading -   |
+----------------------+
|         etc.         |
+----------------------+


实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以按照以下方式执行此操作:

final CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
checkbox.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // Perform action on clicks, depending on whether it's now checked
        if (((CheckBox) v).isChecked()) {
            ListView lv=v.getParent();
            TextView tv1=new TextView(this);
            lv.addView(tv1,1);
            TextView tv2=new TextView(this);
            lv.addView(tv2,2);
        } else {
            ListView lv=v.getParent();
            TextView tv1=lv.getChildAt(1);
            TextView tv2=lv.getChildAt(2);

            if(tv1!=null && tv2!=null) lv.removeViews(1, 2);
        }
    }
});

另一种简单方法是从开头定义TextViews,然后让复选框设置其可见性。