2010-01-06 138 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

相关问题