Android visibilité problème avec case
Im à l'aide d'une case à cocher dans mon code, lorsqu'un de ses vérifié il fait un textview et un editText visibles, mais si je décochez la case de case-ils continuer à être visible au lieu de disparaître.
Voici le code:
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 de l'xml, qui est à l'intérieur d'une Relative Mise en page:
<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 rendre le textView et EditText disparaître quand j'ai décocher la case?
Merci!
Je suis d'accord avec Roflcoptr mais récemment, j'ai fait des expériences avec quelques questions et a constaté que si vous n'avez (pour les quelques fous raison) souhaitez utiliser des valeurs entières ils ne sont pas des 0 et des 1, mais c'est plutôt: 0 - visible 4 - invisible 8 - gone ne sais Pas pourquoi ce sont des multiples de 4.
OriginalL'auteur fxi | 2010-05-20
Vous devez vous connecter pour publier un commentaire.
Utilisation
View.VISIBLE
,View.INVISIBLE
,View.GONE
pour contrôler la visibilité (au lieu de 0 & 1).OriginalL'auteur yanchenko
Deux choses:
Vous devez utiliser
setOnCheckedChangeListener()
, ce qui rendra votre vie plus facile.Vous devez utiliser la Vue.DISPARU et la Vue.VISIBLE au lieu d'entiers pour
setVisibility()
.OriginalL'auteur Daniel Lew
le problème est dans cette partie:
yout ne devriez pas utiliser des valeurs entières, mais plutôt d'utiliser les constantes fournies par la classe de la vue
//Effectuer une action sur les clics, selon qu'il est maintenant vérifié
si (((Case à cocher) v).isChecked()) {
au lieu de l'invisible, vous pourriez aussi utiliser DISPARU. ensuite, votre invisible textedit n'a pas besoin de l'espace dans la mise en page
si vous cochez la API vous verrez que 1 n'est pas un paramètre valide:
OriginalL'auteur