为空时将 edittext 值设置为零,并在进行任何输入时删除零
setting edittext value to zero when empty and removing zero when any entry is made
我有两个用于显示数学函数结果的编辑文本字段。我有两个问题。我想在两种情况下将文本编辑为零值:
第一:
如果编辑文本为空,我希望编辑文本值自动变为零
第二名:
如果用户删除字段值直到编辑文本为空。
更新:
第一个问题我可以用 setText() 或 android:text="0" 排序,但是当试图解决第二个问题时它变得棘手
尝试这样的事情:
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");
}
}
});
使用 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
}
});
希望对您有所帮助:)
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");
}
}
}
});
我有两个用于显示数学函数结果的编辑文本字段。我有两个问题。我想在两种情况下将文本编辑为零值: 第一: 如果编辑文本为空,我希望编辑文本值自动变为零
第二名: 如果用户删除字段值直到编辑文本为空。
更新: 第一个问题我可以用 setText() 或 android:text="0" 排序,但是当试图解决第二个问题时它变得棘手
尝试这样的事情:
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");
}
}
});
使用 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
}
});
希望对您有所帮助:)
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");
}
}
}
});