java - 选择复选框以编程方式选中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
}
但是当我点击删除按钮时,只是删除了最后一个布局,这不是我想要的。
解决方案
虽然你使用的技术不好。但让我给你一个捷径。在您deletBtn method
尝试获取所需已删除视图的引用(尝试处理您必须制作逻辑的 id 或布尔值的情况)并将此行包含 linear.removeView(linr);
在该条件中。
总结一下,只删除符合条件的视图。
或者,在 Recycler-view 的帮助下从头开始完成您的整个任务。因为它 Recycler-view 会给你细胞的确切位置。
推荐阅读
- python - Pandas:如何仅删除列末尾的最后一个连字符
- google-forms - 如何根据其他用户过去的回复使 Google 表单自动填充?
- c - 我知道一个地址,但我应该如何判断在哪个部分?使用C的全局区域或堆区域或堆栈区域
- json - 如何解决“手势 RangeError(索引)捕获的异常:无效值:有效值范围为空:0”
- c++ - 什么会使多边形算法中的点仅在正向和反向运行时才能正常工作?
- php - PHP:如何使用键->值对每两个分隔符将一个字符串分解为一个数组
- kubernetes - 将 GKE 集群拆除为“全新”状态而不删除它?
- scala - Spark——自定义reduce函数保存到磁盘然后上传到s3
- javascript - XMLHttpRequest 返回事件对象而不是实际数据
- fortran - Fortran 将未知大小的文件读入数组