2011-06-04 3 views
0

nouveau développeur Android ici. Je fais un formulaire qui permet aux utilisateurs de définir des critères de recherche avant de chercher dans une base de données SQLite. Une partie du formulaire comprend des cases à cocher. Comment aborder leurs valeurs dans un sens de "meilleure pratique"? Je suis habitué à faire du PHP, donc je voudrais mettre en place une méthode qui retourne un tableau ou un objet avec toutes les valeurs, puis l'appeler dans la méthode 'onClick', mais c'est aussi une bonne idée en Java ?Obtenir plusieurs valeurs de case à cocher dans Android?

Mon code ressemble à ceci:

// Setup a listener, and event handler for the onClick event of the button 
    buttonFind.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      String text = "Button clicked"; 
      int duration = Toast.LENGTH_SHORT; 
      Context context = getApplicationContext(); 

      Toast toast = Toast.makeText(context, text, duration); 
      toast.show(); 
     } 
    }); 
+0

Votre code ne semble pas "appeler" quoi que ce soit. – trutheality

Répondre

4

Il est probablement préférable de donner plus de détails dans votre question. Vous ne montrez nulle part dans votre code où vous définissez votre case à cocher ... donc je vais faire quelques hypothèses:

Je suppose que quelque part dans votre méthode onCreate() de votre activité vous avez quelque chose qui ressemble à ceci:

CheckBox myCheckbox = (Checkbox) findViewById(R.id.my_checkbox); 

Si vous voulez savoir si la case est cochée ou non de la méthode (puisque vous posté ci-dessus) onClick() de votre bouton, vous pouvez faire quelque chose comme ceci:

boolean isMyCheckboxChecked = myCheckbox.isChecked(); 

Espérons que cela fonctionne pour vous. La prochaine fois, essayez d'être plus clair dans vos questions.

+0

Désolé, je suppose que j'ai laissé de côté certaines parties importantes de mon code. Mon souci était de prendre une approche procédurale (cochez les cases de la méthode onClick elle-même), ou d'écrire une méthode qui vérifie les cases et retourne ces données sous la forme d'un tableau ou d'un objet, qui peut ensuite être appelé onClick (c'est-à-dire regrouper ma logique et rendre mon code plus lisible). Donc, je suppose que c'est plus une question de meilleure pratique :) –

+1

Il n'y a pas de «meilleure pratique» pour cela. Cela dépend complètement de votre application. Si vous avez beaucoup de cases à cocher, vous voudrez probablement avoir une fonction qui prend soin de lire tous leurs états et renvoie les valeurs empaquetées pour vous dans le format que vous voulez. – wnafee

+1

Une autre approche consiste à mettre à jour les états de la case à cocher lorsqu'ils sont cochés/décochés plutôt que de le faire à la fin lorsque vous cliquez sur le bouton (cela rendra probablement votre application plus réactive). Pour ce faire, faites juste votre 'OnCheckedChangeListener' et faites-en un générique que vous avez défini pour toutes vos cases à cocher. Pour votre implémentation, identifiez la case à cocher en faisant myView.getId() et créez une instruction 'switch' pour mettre à jour la structure de données appropriée qui contient tous les états de vos cases à cocher pour la case que vous avez identifiée. – wnafee

Questions connexes