我有一个带有TextWatcher的EditText,只要文本发生变化,它就会更新TextView。但是,如果我从中删除文本,它不会触发afterTextChanged方法。为什么?我怎么能这样做呢
final EditText workmiles = (EditText) v.findViewById(R.id.workmiles);
workmiles.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
int tot = GlobalSingleton.get(getActivity()).getCurrentDay().getTotalMins();
if (!workmiles.getText().toString().equals("")){
tot += Integer.parseInt(workmiles.getText().toString()) * 2;
GlobalSingleton.get(getActivity()).getCurrentDay().setWorkmiles(Integer.parseInt(workmiles.getText().toString()));
}
int hours = tot / 60;
int mins = tot % 60;
total.setText(hours + " hours " + mins + " mins");
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
});
答案 0 :(得分:1)
如果您觉得 afterTextChanged 未被触发,请将Log放入此mehtod .. 如果你想在工作里程(EditText)中更改文本时想要生效,那么把代码放在 onTextChanged 这个方法
中答案 1 :(得分:0)
啊,我遇到了同样的问题,并且发现我正在尝试调试一个空的方法体。只需放置一个语句(Log)并在那里放一个断点即可。