从另一个EditText小部件文本填充EditText小部件文本

时间:2010-01-06 15:00:11

标签: android android-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()。trim()==“”'))它的工作原理。所以第二个EditText小部件上的getText()返回一些东西,即使第二个小部件没有初始值,只有通过hint属性显示的文本。

我怎样才能做到这一点。

由于

2 个答案:

答案 0 :(得分: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 :(得分:1)

永远不要将Java中的字符串与==!=进行比较。使用equals()。试试看,看看你是否会得到更好的结果。