-1
votes

Case à cocher ne renvoie que false même s'il est coché (coché)

Dans mon application, il existe 2 cases à cocher pour obtenir le type de l'utilisateur (par exemple: étudiant ou enseignant). Je sais que je devrais utiliser un bouton radio au lieu d'une case à cocher, mais ma question dans le tutoriel a demandé d'utiliser une case à cocher (alors veuillez ignorer le bouton radio pour l'instant).

Même je cocher une case à cocher, ISCHECKED (méthode ISCHECKED () renvoie false. p>

Voici le XML P>

    EditText username, password;
    CheckBox teacher, student;
    DBHelper dbHelper = new DBHelper(this);
    String type;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        username = findViewById(R.id.regUserName);
        password = findViewById(R.id.regPassword);
        teacher = (CheckBox) findViewById(R.id.chkTeacher);
        student = (CheckBox) findViewById(R.id.chkStudent);

        if (teacher.isChecked() == true){
            type = "teacher";
        }
        else{
            type = "student";
        }
    }


1 commentaires

Mais ma question dans le tutoriel a demandé à utiliser une case à cocher oui. Mais un seul. Pas deux. Réessayer. Recommencer. Seule une case à cocher pour professeur fera. Tout commence par la lecture.


3 Réponses :


1
votes

Eh bien, car il y a deux cases à cocher différentes, vous devez travailler avec ces deux cases à cocher et vous devez également déclencher l'état d'une autre case. J'espère que ce code de code ci-dessous vous aidera à réaliser ce que vous voulez.

result = findViewById(R.id.tv_res);
    teacher =  findViewById(R.id.cb_tec);
    student =  findViewById(R.id.cb_std);
    teacher.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            if (isChecked)
            {
                if (student.isChecked()) student.setChecked(false);
                type = "teacher";
            }
            result.setText(type);

        }
    });
    student.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            if (isChecked)
            {
                if (teacher.isChecked()) teacher.setChecked(false);
                type = "student";
            }
            result.setText(type);
        }
    });


4 commentaires

Toujours le même. J'ai vérifié "enseignant" mais à la fin "TYPE" est NULL. BTW Merci d'avoir aidé!


Oh! ma faute. @Manujayapremathilaka j'ai mis à jour ma réponse. Vérifiez s'il vous plaît.


SetonCheckedChangelistener () a résolu mon problème. Merci pour ton aide!


Très bien alors. @Manujayapremathilaka S'il vous plaît marquer ma réponse comme le correct. Merci



0
votes
type = "student";
    }
    else{
        type = "teacher";
    }
 }
    });

2 commentaires

Maintenant, cela ne fonctionne que pour "enseignant". Je pense que je devrais mettre en œuvre un setoncheckedchangelistner pour "étudiant" aussi. Quoi qu'il en soit, merci pour votre aide!


Oui, vous devez également mettre en œuvre pour l'élève.



0
votes

Pour chaque case à cocher, faites simplement cette chose simple xxx


2 commentaires

SetonCheckedCHangelistener a travaillé. Merci pour ton aide!


Si vous avez trouvé cela, c'est une bonne réponse, veuillez voter cette réponse. Il suffit de cliquer sur la flèche vers le haut