首页 > 解决方案 > 选择复选框以编程方式选中android

问题描述

我正在开发 android 应用程序,该应用程序以编程方式为 EditText 中的每个文本用户输入创建带有 textView 和复选框的布局,当用户选择其中一个复选框并单击删除按钮时,包含该复选框的布局从主布局中删除

public void plusBtn(View view)
{
    item = actv.getText().toString(); // text from EditText
    actv.setText("");
    creatt();
    
}

public void deletBtn(View view)
{
    if(chbox.isChecked()){
    
        linear.removeView(linr);
        }   
}
public void creatt()
{
    linr = new LinearLayout(this);
    linr.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    linr.setOrientation(LinearLayout.HORIZONTAL);
    linr.setGravity(Gravity.RIGHT);
    TextView txt = new TextView(this);
    txt.setText(item);
    linr.addView(txt);
    chbox = new CheckBox(this);
    linr.addView(chbox);
    linear.addView(linr); // main layout
}

但是当我点击删除按钮时,只是删除了最后一个布局,这不是我想要的。

标签: javaandroid

解决方案


虽然你使用的技术不好。但让我给你一个捷径。在您deletBtn method尝试获取所需已删除视图的引用(尝试处理您必须制作逻辑的 id 或布尔值的情况)并将此行包含 linear.removeView(linr);在该条件中。

总结一下,只删除符合条件的视图。

或者,在 Recycler-view 的帮助下从头开始完成您的整个任务。因为它 Recycler-view 会给你细胞的确切位置。


推荐阅读