0

すべて - EditText A に少なくとも 1 文字が含まれるまで、EditText B、C を非表示にしようとしています。私はテキストウォッチャーを使ってみました...

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

次のように、java 演算子の代わりに equals メソッドを使用して文字列を比較してみてください。

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

あなたが持っている別のオプションは、 と等しいのではなく、長さをテストすること""です。

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