Cacher le clavier après un clic sur le bouton

Fermé
guineeguinee Messages postés 191 Date d'inscription jeudi 8 décembre 2016 Statut Membre Dernière intervention 30 août 2023 - Modifié le 20 mars 2018 à 09:07
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 21 mars 2018 à 16:55
Bonjour,
J'essaie de faire une calculatrice d'IMC, je voudrais qu'après qu'on finisse d'écrire son poids et sa taille (dans des EditText) et qu'on clique sur le bouton "calculer" que le clavier disparaisse, parce qu'il masque le resultat du calcul, comment puis-je parvenir à le faire ?
Ci-bas mon code Java
package com.calculateur.imc;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;

public class Main2Activity extends AppCompatActivity {

    private EditText poids;
    private EditText taille;
    private TextView result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        poids = (EditText) findViewById(R.id.etp);
        taille = (EditText) findViewById(R.id.ett);
        result = (TextView) findViewById(R.id.result);
    }


    public void calculateIMC(View v) {
        String poidstr = poids.getText().toString();
        String taillestr = taille.getText().toString();

        if (poidstr != null && ! "".equals(poidstr)
                && taillestr != null && ! "".equals(taillestr)) {
            float taillevalue = Float.parseFloat(taillestr) / 100;
            float poidsvalue = Float.parseFloat(poidstr);

            float imc = poidsvalue / (taillevalue * taillevalue);
            displayIMC (imc);
        }
    }
    private void displayIMC (float imc){
        String imclabel = "";

        if (Float.compare(imc, 16f) <= 0) {
            imclabel = getString(R.string.denutrition);
        } else if (Float.compare(imc, 16f) > 0 && Float.compare(imc, 18.5f) <= 0 ){
            imclabel = getString(R.string.maigreur);
        } else if (Float.compare(imc, 18.5f) > 0 && Float.compare(imc, 25f) <= 0 ){
            imclabel = getString(R.string.normale);
        }else if (Float.compare(imc, 25f) > 0 && Float.compare(imc, 30f) <= 0 ){
            imclabel = getString(R.string.surpoids);
        }else if (Float.compare(imc, 30f) > 0 && Float.compare(imc, 35f) <= 0 ){
            imclabel = getString(R.string.obesite_moderée);
        }else if (Float.compare(imc, 35f) > 0 && Float.compare(imc, 40f) <= 0 ){
            imclabel = getString(R.string.obesite_severe);
        } else {
            imclabel = getString(R.string.obesite_morbide);
        }
        imclabel = imc + "\n\n" + imclabel;
        result.setText(imclabel);
    }

 }


Merci d'avance!


3 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 3 894
20 mars 2018 à 09:12
Hello,

C'est un "problème" assez récurrent et la réponse se trouve rapidement sur le web:
public void hideKeyboard(Context context, EditText editText) {
      InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
      imm.hideSoftInputFromWindow(editText.getApplicationWindowToken(), 0);
} 


Quelques remarques par rapport à ton code:
- pour tester si une chaine de caractères est null ou vide:
TextUtils.isEmpty()

- si tu saisies autre chose que des valeurs numériques dans tes champs, que se passe-t-il? Crash?
- pour comparer des float, utilises les opérateur basiques ">", "<", etc. plutôt que Float.compare()
0
guineeguinee Messages postés 191 Date d'inscription jeudi 8 décembre 2016 Statut Membre Dernière intervention 30 août 2023 38
21 mars 2018 à 13:38
Merci BunoCS, je vais corriger le code!
Pour mon souci de hideKeyboard, j'ai inseré le code mais le clavier est toujours là après le clic sur le bouton.
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 3 894
21 mars 2018 à 16:55
Je crois te l'avoir déjà dit...mais sans code, difficile de voir où se trouve le souci ;)
0