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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top