我的代码有一个问题,当我有超过1个textChangeListener时,它就会崩溃。我认为问题出在多次使用“新TextWatcher”,但我不知道该将其更改为什么。
我刚刚开始学习java和应用程序开发,所以代码和变量都有点乱。
代码:
editMiles.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
strMiles = 0 + editMiles.getText().toString();
intMiles = Integer.parseInt(strMiles);
editKnots.setText("" + intMiles * 1.15078);
editKilometers.setText("" + intMiles * 1.852);
}
@Override
public void afterTextChanged(Editable s) {
}
});
editBeaufort.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
strBeaufort = 0 + editBeaufort.getText().toString();
intBeaufort = Integer.parseInt(strBeaufort);
editKnots.setText("");
editKilometers.setText("");
editMiles.setText("");
}
@Override
public void afterTextChanged(Editable s) {
}
});
}发布于 2015-10-07 19:03:04
您必须从您的EditText的onTextChanged paramenter.so中获取输入(CharSequence s)您的代码将是..
editMiles.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
strMiles = s.toString().trim();
intMiles = Integer.parseInt(strMiles);
editKnots.setText("" + intMiles * 1.15078);
editKilometers.setText("" + intMiles * 1.852);
}
@Override
public void afterTextChanged(Editable s) {
}
});
editBeaufort.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
strBeaufort = s.toString().trim();
intBeaufort = Integer.parseInt(strBeaufort);
editKnots.setText("");
editKilometers.setText("");
editMiles.setText("");
}
@Override
public void afterTextChanged(Editable s) {
}
});
}我希望它对你有用,你必须为你的计算提供正确的输入,如果你想输入int,你必须将string解析为int,或者如果你想作为double输入,那么将string解析为double,然后抛出异常
https://stackoverflow.com/questions/32990136
复制相似问题