1

2 つの EditText があります。たとえば、1 つは °C 単位の温度で、もう 1 つは °F 単位の温度です。ユーザーが 1 つの EditTexts を編集すると、それに応じてもう一方を変更する必要があります。

問題は、この変更がループになり、EditTexts が互いに変更を行うことです。これを解決するには?プログラムで最初のものを変更しても、他の EditText でまだ反応したいのですが、ループはありません...

4

2 に答える 2

6

最初にそれぞれEditTextにフォーカスがあるかどうかを確認し、フォーカスがない場合にのみプログラムで変更します。

http://developer.android.com/reference/android/view/View.html#hasFocus()

ユーザーが編集しているものにフォーカスがあります。もう一方はしません。

于 2013-07-18T07:28:54.267 に答える
0

試す

EditText et=new EditText(this);
final EditText et2=new EditText(this);
et1.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        //DO CHANGE YOUR FAHRENHEIT HERE
et2.setText(....);
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub

    }
});

編集: 両方の EditText の OnFocusChange は、他方のフォーカスを無効にします。

于 2013-07-18T07:31:29.983 に答える