如何设置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);
}
});
在我的程序中,我希望能够在选中一个单选按钮时隐藏编辑文本,然后在用户单击另一个单选按钮时重新出现。
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);
}
});