如何设置editText visible/invisible?

How to set editText visible/invisible?

在我的程序中,我希望能够在选中一个单选按钮时隐藏编辑文本,然后在用户单击另一个单选按钮时重新出现。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.waist2height); {
        final EditText h = (EditText)findViewById(R.id.editText2);          
        final RadioButton rCM = (RadioButton) findViewById(R.id.radioCM);
        final RadioButton rFT = (RadioButton) findViewById(R.id.radioFT);                       
        if(rCM.isChecked()){    
            h.setVisibility(View.VISIBLE);              
        }
        else if(rFT.isChecked()){               
            h.setVisibility(View.INVISIBLE);
        }}

下面的代码是我遇到问题的地方,我只在代码的相关部分而不是整个代码中添加了问题

if(rCM.isChecked()){                    
    h.setVisibility(View.VISIBLE);                  
}
else if(rFT.isChecked()){                   
    h.setVisibility(View.INVISIBLE);
} 

不幸的是,我似乎无法让它工作。 我错过了什么吗?还是我完全弄错了? 我试过 h.setVisibility(View.GONE); 但是它只是破坏了 xml.

的格式
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);        
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if(checkedId==0){

                h.setVisibility(View.VISIBLE);

            }
            else if(checkedId==1){

                h.setVisibility(View.INVISIBLE);
            } 
        }
    });

我制作了一个示例,它对我有用,只需看看这段代码:

我已将这些变量声明为全局变量

RadioButton rb1,rb2;
TextView tbHideOrNot;

然后在我的 onCreate() 我得到了这个 :

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    rb1 = (RadioButton)findViewById(R.id.rb1);
    rb2 = (RadioButton)findViewById(R.id.rb2);
    tbHideOrNot = (TextView)findViewById(R.id.textView);
    rb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked){
                tbHideOrNot.setVisibility(View.INVISIBLE);
                rb2.setChecked(false);
            }
        }
    });
    rb2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked){
                tbHideOrNot.setVisibility(View.VISIBLE);
                rb1.setChecked(false);
            }
        }
    });

}

在我看来,使用 RadioButton 不是一个好主意,我建议您使用 CheckBox 因为您只能单击 ONE 并且你必须检查第一个 RadioButton 是否被点击然后你按下第二个你必须取消选中第一个,等等......好吧这是你的代码我只给你一个建议,这个代码对我有用,让我知道它是否对你有用:)

顺便说一下,如果您想使用此代码:

if(rCM.isChecked()){                    
 h.setVisibility(View.VISIBLE);                  
}
else if(rFT.isChecked()){                   
 h.setVisibility(View.INVISIBLE);
} 

没关系,但您只会在启动 Activity 时隐藏或不隐藏 TextView,并且您必须放置任何 RadioButton(如果需要)android:checked="true"false 如果你想显示或不显示 TextView,但使用此代码你不会在 RadioButtons 上获得点击事件。

Try this :

rCM.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
    h.setVisibility(View.VISIBLE);
}
});
rFT.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
    h.setVisibility(View.INVISIBLE);              
}
});