Sul mio layout, ho alcuni pulsanti che fanno alcune scelte e quindi un pulsante per eseguire una query su un database. Il risultato di questa query è mostrato in un ListView
all'interno di questo layout.Android listview scompare dopo la rotazione dello schermo
Il problema è se dopo aver eseguito la query ruoto lo schermo, lo ListView
scompare e si deve eseguire nuovamente la query.
Credo che questo stia succedendo perché l'attività ricomincia. Seguendo i suggerimenti here ho aggiunto alla mia attività nel manifesto android:configChanges="orientation|keyboardHidden"
e nel mio codice ha aggiunto:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.mylayout);
}
Ma questo non sta funzionando.
Ecco il codice completo della mia attività:
public class MyClass extends ListActivity implements OnClickListener, OnCheckedChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
// Creates the buttons and setOnClickListener and setOnCheckedChangeListener
}
@Override
public void onClick(View v) {
// Manages the buttons and their functions
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// See what group in radio group is checked
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// After pressing one button, a query is made and a listview is shown.
// This it to handle the user choice after he clicks an item on the listview
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.mylayout);
}
}
Questo è strano perché ho qualche altra attività in questo modo:
public class AtoZ extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.atoz);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
}
}
Questo esegue anche una query al database, lo mostra su un ListView
e quindi gestisce la scelta dell'utente. Se ruoto lo schermo, viene visualizzato ancora ListView
.
Cosa posso fare?
Perché si imposta il layout su R.layout.nutrient nel metodo onConfigurationChanged (invece di R.layout.mylayout come fatto nel metodo onCreate)? – Sameer
@Sameer Hai dimenticato di cambiare. Corretto – Favolas
Come si inseriscono i dati in ListView? Lo si lega al cursore DB? – Sameer