1

2 番目の EditText ウィジェットがフォーカスを受け取り、2 番目のウィジェットが空ではなく、最初のウィジェットが空でない場合にのみ、2 番目の 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());
        }
    }

それを実行して 2 番目のウィジェットをクリックすると、データが取り込まれません。3 番目の制約 ('etxt.getText ().toString().trim() == ""')) を削除すると、機能します。そのため、2 番目のウィジェットにはヒント属性を介して表示されるテキスト以外の初期値がないにもかかわらず、2 番目の EditText ウィジェットの getText() は何かを返しています。

どうすればこれを達成できますか。

ありがとう

4

2 に答える 2

2

String.equals()だけでなく、を使用してオブジェクト比較を行う必要がありますx == ""

TextUtilsAndroid の便利なクラスを使用してこれを書き直します。

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

if (hasFocus && TextUtils.getTrimmedLength(one) != 0 
      && TextUtils.getTrimmedLength(two) == 0) {
    etxt.setText(one);
}
于 2010-01-06T15:07:41.550 に答える
1

Java の文字列を==またはと比較しないでください!=。を使用しequals()ます。それを試して、より良い結果が得られるかどうかを確認してください。

于 2010-01-06T15:06:29.153 に答える