0

所有- 我试图隐藏 EditText B,C 直到 EditText A 中至少有一个字符。我尝试过使用文本观察器...

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)要么总是可见,要么永远不可见,这取决于天气,或者我editText$.setVisibility(View.INVISIBLE); $.setVisibility(View.INVISIBLE);在 TextWatcher 之前声明。有人可以告诉我我做错了什么吗?感谢您的时间!

4

1 回答 1

1

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

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

您拥有的另一个选择是测试长度而不是等于"".

if (s.toString().length() > 0) {  
于 2012-07-13T00:22:56.673 回答