如何在 android 中隐藏动态创建的 EditText 框?

How to hide a dynamically created EditText box in android?

我想做一个考勤加任务系统。为此,我使用了复选框和线性布局。线性布局用于动态添加编辑文本框。当一个复选框被选中时,一个新的文本字段是可见的,当它被取消选中时,文本字段必须被隐藏。我使用了这样的部分代码:

    public void onCheckBoxClicked(View v) {
    boolean checked = ((CheckBox) v).isChecked();
    EditText tv;
    tv = new EditText(this);
    tv.setLayoutParams(new RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT,
                RadioGroup.LayoutParams.WRAP_CONTENT)); 
tv.setText(one.getText().toString()+ "'s task today?");
tv.setBackgroundColor(0xff66ff66); // hex color 0xAARRGGBB
tv.setPadding(20, 20, 20, 20);// in pixels (left, top, right, bottom)

switch (v.getId()) {

case R.id.checkBox1:
if(checked) {
list.addView(tv);
Toast.makeText(getApplicationContext(), one.getText().toString() + " is present", Toast.LENGTH_SHORT).show();
  }

if(!checked) {
 tv.setVisibility(EditText.GONE);   //problem exists here--is not executing
 Toast.makeText(getApplicationContext(), one.getText().toString() + " is  absent", Toast.LENGTH_SHORT).show();
                }

                break;

现在,当我选中该框时,我可以轻松获得一个编辑文本字段,但取消选中它时,编辑文本字段不会隐藏。我该如何解决?

这是因为每次单击某个复选框时您都在创建新的 EditText。您正在尝试隐藏甚至 shown/added 还没有的 EditText。明白了!!

尝试将您的 EditText tv = new EditText(this); editText 作为 class 变量,在 onCreate 中创建它。然后你可以在需要的时候hide/show。

它看起来像下面的代码。

EditText tv;
onCreate(.......){
..............

tv = new EditText(this);
..............
}

然后在您的 onCheckBoxClicked 方法中使用此 tv 而不是在此方法中创建一个。