2011-06-01 7 views
0

Comment puis-je enregistrer les informations d'une liste de choix multiple dans la base de données? Je veux enregistrer le statut d'un élément d'une liste. Par exemple, si j'ai 2 éléments cochés je veux enregistrer ce statut dans la base de données.Android liste de choix multiples SQLite

Merci

Répondre

0

Bien sûr fegol,

je suppose que vous avez déjà configuré le choix multiple listview. (Si ce n'est pas le cas, veuillez vérifier en ligne il y en a des tas http://www.androidpeople.com/android-listview-multiple-choice-example).

Ici, je voudrais vous donner un indice sur un problème d'économie de données.

Fondamentalement, il existe deux choix communs. La première consiste à utiliser getCheckedItemIds() ou getCheckedItemPositions() sur votre listview (http://developer.android.com/reference/android/widget/AbsListView.html#getCheckedItemIds()).

Le second qui est plus flexible consiste à écrire un adaptateur personnalisé. Vous pouvez utiliser isChecked() pour vérifier si la case a été cochée, puis enregistrer le statut dans votre hashmap. Ensuite, vous pouvez obtenir tout le statut des cases à cocher à la fin.

J'ai mis un peu de pseudo-code pour la deuxième approche pour vous. J'espère que cela t'aides.

ArrayList<Boolean> checkList = new ArrayList<Boolean>(); 
    // TODO: put some empty data into checkList 



    private OnItemClickListener myListItemClickListener = new ListView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View v, int position, long id) { 


     if(checkList.get(position)){ 
      checkList.set(position, false); 
     }else{ 
      checkList.set(position, true); 
     } 

     ((mAdapter)mList.getAdapter()).notifyDataSetChanged(); 

     } 
    } 



    class mAdapter extends BaseAdapter{ 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 

      if (checkList.get(position)){ 
       checkBox.setChecked(true); 
      }else{ 
       checkBox.setChecked(false); 
      } 
     } 
    } 
+0

Bonjour ThinknChris. Pouvez-vous me montrer quelques tutoriels sur la façon d'enregistrer des éléments cochés de ListView dans la base de données? Merci et salutations – unnamed