我有两个edittext字段,用于显示数学函数的结果。我有两个问题。我想在两种情况下编辑文本以使其值为零: 第一名: 如果编辑文本为空,我希望编辑文本值自动变为零
第二: 如果用户删除字段值,直到编辑文本为空。
更新: 我可以用setText()或android排序的第一个问题:text =" 0"但是当试图解决第二个问题时,它变得棘手
答案 0 :(得分:4)
尝试这样的事情:
final EditText et = new EditText(this);
et.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) {
}
@Override
public void afterTextChanged(Editable s) {
if(et.getText().length() == 0){
et.setText("0");
}
}
});
答案 1 :(得分:2)
yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
if(yourEditText.getText().length() == 1 && yourEditText.getText().toString().trim().equals("0")){
yourEditText.setText("");
}
}else {
if(yourEditText.getText().length() == 0){
yourEditText.setText("0");
}
}
}
});
答案 2 :(得分:0)
使用 TextWatcher 如下:
yourEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@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
}
});
我希望这会有所帮助:)