当EditText A有字母时显示EditText B.

时间:2012-07-13 00:19:04

标签: java android android-edittext textwatcher

全部 - 我试图隐藏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);。有人能告诉我我做错了什么吗?感谢您的时间!

1 个答案:

答案 0 :(得分:1)

尝试使用equals方法比较字符串而不是java运算符,如下所示:

if (s.toString().equals("") == false ) {  

另一个选择是测试长度而不是等于""

if (s.toString().length() > 0) {