Я составил такой список, что каждый раз, когда я нажимаю на элемент, он открывает другую страницу.Проблема в том, что если вы используете кнопку «Назад», приложение закроется.Я бы предпочел вернуться в предыдущее меню;как я могу это исправить?
public class Listview extends Activity {
static ListView listView;
static public class BackgroundWorker extends AsyncTask<Void, Person, Void> {
@SuppressWarnings("unchecked")
@Override
protected void onPreExecute () {
// Prima di iniziare a inserire gli elementi svuotiamo l'adapter
( ( ArrayAdapter<Person> ) listView.getAdapter() ).clear();
super.onPreExecute();
}
@Override
protected Void doInBackground ( Void... params ) {
Person[] people = { new Person( "Privacy",R.drawable.icon1 ) };
Person[] people1 = {new Person( "Visualizzazione", R.drawable.icon1 )};
Person[] people2= { new Person( "Notifiche", R.drawable.icon1)};
// riempimento casuale della lista delle persone
Random r = new Random();
for ( int i = 0; i < 1; i++ ) {
// Pubblichiamo il progresso
publishProgress( people);
publishProgress( people1);
publishProgress( people2);
}
return null;
}
@SuppressWarnings("unchecked")
@Override
protected void onProgressUpdate ( Person... values ) {
// Aggiungiamo il progresso pubblicato all'adapter
( ( ArrayAdapter<Person> ) listView.getAdapter() ).add( values[0] );
super.onProgressUpdate( values );
}
}
@Override
public void onCreate ( final Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.main );
listView = ( ListView ) findViewById( R.id.personListView );
listView.setAdapter( new PersonAdapter( this, R.layout.row_item, new ArrayList<Person>() ) );
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Person p = (Person) parent.getItemAtPosition(position);
switch(position) {
case 0:
onCreate1(savedInstanceState);
// setContentView(R.layout.main1);
break;
case 1:
setContentView(R.layout.main2);
break;
case 2:
setContentView(R.layout.main3);
}
}
});
new BackgroundWorker().execute();
}
}