全部 - 我试图隐藏EditText B,C,直到EditText A中至少包含一个字符。我尝试过使用textwatcher ......
EditText editText = (EditText) findViewById(R.id.p1); //A
final EditText editText$ = (EditText) findViewById(R.id.p1$); //B
final TextView $ = (TextView) findViewById(R.id.$); //C
editText$.setVisibility(View.INVISIBLE);
$.setVisibility(View.INVISIBLE);
editText.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable arg0) {
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if (s.toString() != "" ) {
editText$.setVisibility(View.VISIBLE);
$.setVisibility(View.VISIBLE);
}
else {
editText$.setVisibility(View.INVISIBLE);
$.setVisibility(View.INVISIBLE);
}
}
});
但是EditText B(和C)要么总是可见的,要么永远不可见,具体取决于天气或不是我在TextWatcher之前声明editText$.setVisibility(View.INVISIBLE);
$.setVisibility(View.INVISIBLE);
。有人能告诉我我做错了什么吗?感谢您的时间!
答案 0 :(得分:1)
尝试使用equals方法比较字符串而不是java运算符,如下所示:
if (s.toString().equals("") == false ) {
另一个选择是测试长度而不是等于""
。
if (s.toString().length() > 0) {