2012-07-13 44 views
0

全部 - 我試圖隱藏EditText B,C直到EditText A至少有一個字符在裏面。我曾嘗試使用textwatcher ...當EditText A有字母時顯示EditText B

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

嘗試使用equals方法進行比較,而不是Java的操作的字符串,像這樣:

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

你有另一種選擇是測試長度,而不是平等""

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

甜!就是這樣。非常感謝您的時間和精力! – ninge 2012-07-13 00:25:25

+1

你知道嗎,接受他的回答和熱心是非常好的方法來感謝他的幫助...... – Barak 2012-07-13 00:42:54