0
私は、http://173.199.129.149/~tiffinex/Dev/MTO/beta/index-calculator.phpのような変換電卓を作成していますが、1つのテキスト変更リスナーを使用しています。私はそれが応答を与えるものではありません。二つ以上のテキスト変更リスナーを試み、私のアプリは、コードは以下のとおりである、動作を停止しfine.Whenそれはあなたがまた、他の設定されているので、あなたがこの問題を得ているandroidで2つ以上のテキストチェンジリスナーを使用する方法
et1 = (EditText)findViewById(R.id.editText);
et2 = (EditText)findViewById(R.id.editText2);
et3 = (EditText)findViewById(R.id.editText3);
et1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (et1.getText().toString().equals("")) {
et2.setText("0");
et3.setText("0");
} else {
String s1 = et1.getText().toString();
Double d1 = Double.parseDouble(s1);
Double d3 = d1 * 12;
String s3 = Double.toString(d3);
et2.setText(s3);
Double d4 = d1 * 0.3048;
String s4 = Double.toString(d4);
et3.setText(s4);
}
}
@Override
public void afterTextChanged(Editable editable) {}
});
et2.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (et2.getText().toString().equals("")) {
et1.setText("0");
et3.setText("0");
} else {
String s1 = et2.getText().toString();
Double d1 = Double.parseDouble(s1);
Double d3 = d1/12;
String s3 = Double.toString(d3);
et1.setText(s3);
Double d4 = d1 * 39.40;
String s4 = Double.toString(d4);
et3.setText(s4);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
et3.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2){
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (et3.getText().toString().equals("")) {
et2.setText("0");
et1.setText("0");
} else {
String s1 = et3.getText().toString();
Double d1 = Double.parseDouble(s1);
Double d3 = d1 * 39.40;
String s3 = Double.toString(d3);
et1.setText(s3);
Double d4 = d1/3.48;
String s4 = Double.toString(d4);
et3.setText(s4);
}
@Override
public void afterTextChanged(Editable editable) {}
});
}
http://stackoverflow.com/questions/5702771/how-to-use-single-textwatcher-for-multiple-edittexts –