Je évidemment nouveau et j'ai essayé de deux jours pour comprendre comment sauver l'état de mon activité principale en vain. J'apprécierais toute aide. Lorsque je lance l'activité ShowDetail et que je retourne à l'activité principale, je n'ai aucune donnée dans la liste. J'ai deux fichiers xml un fichier main.xml et un fichier item.xml. main est juste un listview et un textview. Item.xml correspond à 3 textviews pour les données de la liste. Item Voici le code de mon activité principale:Comment enregistrer l'instancestate de mon activité
public class main extends ListActivity {
Événements privés Événements de données;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
events = new EventsData(this);
try {
Cursor cursor = getEvents();
showEvents(cursor);
} finally {
events.close();
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
}
@Override
public void onPause(){
super.onPause();
}
@Override
public void onRestart(){
super.onRestart();
}
private static String[] FROM = { CODE, EXCERPT, _ID, };
private static String ORDER_BY = CODE + " ASC";
private Cursor getEvents() {
SQLiteDatabase db = events.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, FROM, null, null, null, null, ORDER_BY);
startManagingCursor(cursor);
return cursor;
}
private static int[] TO = { R.id.code, R.id.excerpt, };
private void showEvents(Cursor cursor) {
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.item, cursor, FROM, TO);
setListAdapter(adapter);
}
private static String[] MIKEY = { _ID, CODE, DEFINITION };
protected void onListItemClick(ListView l, View v, int position, long id) {
Cursor cursor = ((CursorAdapter)getListAdapter()).getCursor();
cursor.getLong(2);
SQLiteDatabase db = events.getReadableDatabase();
Cursor c = db.query(TABLE_NAME, MIKEY, "_id = "+cursor.getLong(2)+"", null, null, null, null);
c.moveToFirst();
Intent in1 = new Intent();
Bundle bun = new Bundle();
bun.putLong("id", c.getLong(0));
bun.putString("code", c.getString(1));
bun.putString("definition", c.getString(2));
in1.setClass(this, ShowDetail.class);
in1.putExtras(bun);
startActivity(in1);
}
}
Je l'ai lu à plusieurs reprises et il ne m'a pas aidé à mon problème. Je peux voir comme il est facile de sauvegarder l'état des textviews, etc. mais pas une liste. Merci pour la réponse. –
Je viens de lire à nouveau votre réponse et si je mets mes actions générales en veille, ça ira parce que rien n'a été sauvegardé. Merci encore pour la réponse. –
Pourriez-vous poster le Stacktrace? Donc, vous voulez remplir votre liste et conserver l'élément sélectionné, n'est-ce pas? – stpn108