2 つの EditText があります。たとえば、1 つは °C 単位の温度で、もう 1 つは °F 単位の温度です。ユーザーが 1 つの EditTexts を編集すると、それに応じてもう一方を変更する必要があります。
問題は、この変更がループになり、EditTexts が互いに変更を行うことです。これを解決するには?プログラムで最初のものを変更しても、他の EditText でまだ反応したいのですが、ループはありません...
2 つの EditText があります。たとえば、1 つは °C 単位の温度で、もう 1 つは °F 単位の温度です。ユーザーが 1 つの EditTexts を編集すると、それに応じてもう一方を変更する必要があります。
問題は、この変更がループになり、EditTexts が互いに変更を行うことです。これを解決するには?プログラムで最初のものを変更しても、他の EditText でまだ反応したいのですが、ループはありません...
最初にそれぞれEditText
にフォーカスがあるかどうかを確認し、フォーカスがない場合にのみプログラムで変更します。
http://developer.android.com/reference/android/view/View.html#hasFocus()
ユーザーが編集しているものにフォーカスがあります。もう一方はしません。
試す
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 は、他方のフォーカスを無効にします。