Problème de visibilité Android avec case à cocher

J'utilise une case à cocher dans mon code qui, lorsqu'il est vérifié, fait une visualisation de texte et des visibles editText, mais si je décoche la case, ils continuent d'être visibles au lieu de disparaître.

Voici le code:

  • Listview - Pied de page en bas de l'écran
  • Comment mettre en place un pied de page collant en recyclage
  • Android NumberPicker: Définir min, max, par défaut à partir de XML
  • Android ListView Footer View n'est pas placé en bas de l'écran
  • Comment puis-je créer le pied de page d'une extension ListView pour compléter l'espace restant?
  • Supprimer un auditeur d'une vue dans Android
  • final CheckBox save = (CheckBox) findViewById(R.id.checkbox); save.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Perform action on clicks, depending on whether it's now checked if (((CheckBox) v).isChecked()) { nameText.setVisibility(1); editName.setVisibility(1); } else { nameText.setVisibility(0); editName.setVisibility(0); } } }); 

    Et une partie du xml qui se trouve dans une disposition relative:

      <LinearLayout android:id="@+id/linearLayout3" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below = "@+id/linearLayout2"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/name" android:visibility="invisible"/> <EditText android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:visibility="invisible"/> <CheckBox android:id="@+id/checkbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/save" /> </LinearLayout> 

    Que dois-je faire pour que TextView et EditText disparaissent lorsque je décoche la case?

    Je vous remercie!

  • Supprimer un auditeur d'une vue dans Android
  • 3 Solutions collect form web for “Problème de visibilité Android avec case à cocher”

    Utilisez View.VISIBLE , View.INVISIBLE , View.GONE pour contrôler la visibilité (au lieu de 0 et 1).

    Deux choses:

    1. Vous devez utiliser setOnCheckedChangeListener() , ce qui vous facilitera la vie.

    2. Vous devez utiliser View.GONE et View.VISIBLE au lieu des entiers pour setVisibility() .

    Le problème se trouve dans cette partie:

      // Perform action on clicks, depending on whether it's now checked if (((CheckBox) v).isChecked()) { nameText.setVisibility(1); editName.setVisibility(1); } else { nameText.setVisibility(0); editName.setVisibility(0); } 

    Vous ne devez pas utiliser des valeurs entières, mais plutôt utiliser les constantes fournies par la classe de vue

    // Exécute une action sur les clics, selon qu'il est maintenant vérifié si (((CheckBox) v) .isChecked ()) {

      nameText.setVisibility(View.VISIBLE); editName.setVisibility(View.VISIBLE); } else { nameText.setVisibility(VIEW.INVISIBLE); editName.setVisibility(VIEW.INVISIBLE); } 

    Au lieu d'invisible, vous pouvez également utiliser GONE. Alors votre textedit invisible n'a pas besoin d'espace dans la mise en page

    Si vous vérifiez l' API, vous verrez que 1 n'est pas un paramètre valide:

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.