2011-12-14 2 views
1

J'ai un menu de paramètres dans mon application. Lorsque je clique sur le bouton Menu, je peux cliquer sur l'icône des paramètres et l'activité de réglage apparaît. La mise en page des paramètres contient une vue de liste, chaque élément de vue de liste se compose de textview (description du paramètre) et d'edittext (définition des données). Je stocke les données dans les paramètres table base de données SQLite et ajouter tous les paramètres à un adaptateur (ListAdapter) et listView comme ceci:Comment mettre à jour la base de données SQLite à partir de listview en utilisant un adaptateur dans Android?

Cursor cursor = dbAdapter.fetchSettings(); 
startManagingCursor(cursor); 
String[] from = new String[] { "description", "data" }; 
int[] to = new int[] { R.id.settingsDesc, R.id.settingsText }; 
listAdapter = new SimpleCursorAdapter(this, 
R.layout.settings_menu_item, cursor, from, to); 
listView.setAdapter(listAdapter); 

Comme vous le voyez, je peux modifier les données de réglage. Ma question est, comment puis-je mettre à jour la base de données quand j'ai changé le texte dans l'un des éléments edittext? J'ai également le bouton Enregistrer dans la disposition des paramètres et je veux que le fait de cliquer dessus mettrait à jour la base de données. J'espère qu'il y a un moyen simple de le faire.

Répondre

0

Vous pouvez obtenir l'ID de la valeur editText sélectionnée et déclencher la requête de mise à jour qui mettra à jour votre base de données. Ensuite, vous pouvez simplement remplir à nouveau le ListView en utilisant cursor.requery() et notifyDataSetChanged().

Ainsi, sur le bouton Enregistrer

1.) Fire the update query for the selected row. 
2.) cursor.requery(); 
3.) adapter.notifyDataSetChanged(); 
+0

Comment puis-je accéder au editText? – user1097409

Questions connexes