2010-01-06 192 views
0

我試圖來用,只有當第二的EditText小部件獲得焦點第一的EditText插件的文本第二的EditText小部件的文本,第二個部件是不是空的,第一個小部件不是空的。從其他的EditText小部件文本填充的EditText小部件文本

我有以下OnFocusChangeListener處理程序代碼。

 public void onFocusChange(View v, boolean hasFocus) { 

     EditText stxt = (EditText) findViewById(R.id.numberone); 
     EditText etxt = (EditText) findViewById(R.id.numbertwo); 


     if (hasFocus && stxt.getText().toString().trim() != "" && etxt.getText().toString().trim() == "") 
     { 
      etxt.setText(stxt.getText().toString().trim()); 
     } 
    } 

當我運行它並單擊第二個小部件時,它不會填充。當我刪除了第三約束( 'etxt.getText()的ToString()。修剪()== 「」')),它的工作原理。這樣的getText()在所述第二小部件的EditText正在返回的東西,即使第二構件有其他沒有初始值,則經由所述提示屬性顯示的文本。

我怎樣才能做到這一點。

感謝

回答

2

您應該使用String.equals()進行對象比較,而不僅僅是x == ""

我會重寫這個使用Android的方便TextUtils類:

String one = stxt.getText().toString(); 
String two = etxt.getText().toString(); 

if (hasFocus && TextUtils.getTrimmedLength(one) != 0 
     && TextUtils.getTrimmedLength(two) == 0) { 
    etxt.setText(one); 
} 
1

切勿與Java ==!=比較字符串。使用equals()。嘗試一下,看看你是否有更好的結果。

+0

是的......我現在看到 – bugzy

相關問題