Effacement du texte précédemment entré dans le champ EditText
-
29-10-2019 - |
Question
Hé, j'essaie d'obtenir ma fenêtre Edittex
Ce n'est pas du texte indique. Pour le moment, une fois que les données prédéterminées sont entrées, elles y restent et je ne peux pas les effacer, même en utilisant la suppression. J'ai essayé de mettre EditBox.SetText ("") dans l'écouteur OnClick et le AddTextChangedListener (à la fois avant et sur les méthodes) en utilisant un booléen pour déterminer si le code a déjà été entré, mais il l'ignore.
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();
}
}
Merci
La solution
Errr ...
Le seul code que j'utilise pour réaliser 1) est:
// Clear text when clicked
host.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
host.setText("");
}
});
host
être juste un édition. Fonctionne très bien? Je pense que vous rendez cela plus compliqué qu'il ne l'est.
Autres conseils
Pour effacer quand le bouton Effacer est cliqué:
firstName = (EditText) findViewById(R.id.firstName);
clear = (Button) findViewById(R.id.clearsearchSubmit);
clear.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.clearsearchSubmit);
firstName.setText("");
}
});
Cela a fonctionné pour moi. J'espère que cela aide.
Pendant 1) OnClick n'a pas fonctionné pour moi car je devais appuyer deux fois pour appeler OnClickListener. Une autre approche serait SetonFocusChangeListener ()
editTextView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
editTextView.getText().clear();
}
}
});
Pour 2) la solution donnée par ASHIM888 fonctionne bien.