0
votes

Android textview: Comment puis-je modifier la mise en page de manière dynamique car le texte est tapé

Je dois définir un bouton sur "visible" ou "parti" de manière dynamique en tant que types d'utilisateurs sur un champ TextView. En utilisant la déclaration ci-dessous, j'ai été en mesure de l'accomplir lorsque l'entrée est enfoncée, mais ce serait formidable si le bouton devient visible ou parti immédiatement en tant que type utilisateur ou supprime le contenu du texte. Toute suggestion?

binding.textField.setOnEditorActionListener { v, actionId, event -> 
    if (v.text.toString().trim().isEmpty()){
        binding.button.visibility = View.GONE
    } else{
        binding.button.visibility = View.VISIBLE
    }

    return@setOnEditorActionListener true
}


0 commentaires

3 Réponses :


0
votes

Vous devez ajouter TextChangelistener à votre texte Modifier et masquer le bouton sur le texte Changement de texte

binding.textField.addTextChangedListener(new TextWatcher() {

       @Override
       public void afterTextChanged(Editable s) {}

       @Override    
       public void beforeTextChanged(CharSequence s, int start,
         int count, int after) {
       }

       @Override    
       public void onTextChanged(CharSequence s, int start,
         int before, int count) {
        binding.button.visibility = View.GONE
       }
      });


1 commentaires

Merci pour les commentaires!



2
votes

Vous pouvez utiliser addtextChangeDlistener sur votre editext.

Comme ceci: xxx

espère que l'aide :)


1 commentaires

Bonjour @ryann, merci beaucoup pour votre aide. Et je suis désolé pour les retours retardés. Depuis que je suis débutant sur Android et Kotlin, il m'a fallu un peu de temps pour mettre en œuvre votre suggestion. Il s'avère que Kotlin offre un accès simplifié aux fonctions de remplacement. J'ai posté la mise en œuvre finale ci-dessous pour que toutes les informations de tout le monde. Merci encore pour votre soutien!



0
votes

Kotlin offre un accès simplifié aux fonctions de remplacement. Voici ma mise en œuvre finale (travail), FYI:

binding.textField.doAfterTextChanged { text: Editable? ->
    if (text.toString().trim().isEmpty()){
        binding.button.visibility = View.GONE
    } else{
        binding.button.visibility = View.VISIBLE
    }


0 commentaires