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);
}
}
}
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