嘿, 我试图让我的EDITTEXT窗口清除其内容时任: 1)重选进入不同的数据或 2)按下按钮到预定的输入数据清除先前输入的文本中的EditText场
这不是提示文本。此时一旦输入了预定的数据,它就会停留在那里,即使使用删除,我也无法清除它。 我已经尝试在onClick监听器和addTextChangedListener(前后都使用布尔值)中添加editBox.setText(“”),以确定代码是否已经输入,但它只是忽略它。
foodBox.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
addFood();
valueAdded=true;
}
});
dogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (valueAdded==true){
foodBox.setText("");
setFood(0.0);
}
isClicked=true;
animal=1;
addFood();
valueAdded=true;//value in the box
}
});
catButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (valueAdded){
foodBox.setText("");}
isClicked=true;
animal=2;
addFood();
valueAdded=true;
}
});
private void addFood() {
try{
aClass aob = new aClass();
setFood(0.0);
String a = this.foodBox.getText().toString();
if(isClicked&&TextUtils.isEmpty(a)){
if(animal==1){
a=mob.getDog();
}
if(animal==2){
a=mob.getCat();
}
this.foodBox.setText(a);
double d=Double.parseDouble(a);
setFood(d);
}else{
if(TextUtils.isEmpty(a)){
a="0";
}
double d=Double.parseDouble(a);
setFood(d);
}
}
catch (Exception e){
this.showAnswer.setText("Please input animals in numbers");
addFood();
}
}
感谢
它很奇怪。这可能与addFood方法中的代码有关吗? – Broo 2011-05-05 13:37:29
我不会使用TextChanged侦听器,特别是不会那样。 valueAdded变量看起来很愚蠢,你应该检查'foodBox.getText()。length()'之类的东西,而不是确保EditText字段中有数据。重新思考你的设计。 – Klaus 2011-05-05 13:42:04
摆脱“isClicked”... – Klaus 2011-05-05 13:44:58