I'm implementing an App with a Tabhost. In one of my tabs i'm executing more than one activities (ActivityGroup).
For example: I'm in activity one, after clicking in a listview i go to activity two in the same tab. The problem is when i press back button, the application closes and i want to go back to activity one. I've overwritten onBackPressed() method, onKeyDown method and they won't be called, they are not being fired. I've seen a lot of posts with the same problem but any of the solutions shown wont work.
would be glad for your help!
Creating tabs:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_tab);
TabHost fichas = getTabHost();
fichas.setup();
TabHost.TabSpec spec=fichas.newTabSpec("tab1");
Intent i = new Intent(getApplicationContext(), AllProductsActivity.class);
spec.setContent(i);
spec.setIndicator("Hoy");
fichas.addTab(spec);
TabHost.TabSpec spec2=fichas.newTabSpec("tab2");
Intent i2 = new Intent(getApplicationContext(), QueActivity.class);
spec2.setContent(i2);
spec2.setIndicator("Que");
fichas.addTab(spec2);
spec=fichas.newTabSpec("tab3");
spec.setContent(R.id.Cuando);
spec.setIndicator("Cuando");
fichas.addTab(spec);
spec=fichas.newTabSpec("tab4");
spec.setContent(R.id.Donde);
spec.setIndicator("Donde");
fichas.addTab(spec);
}
On QueActivity.class i'm implementing onClickListener to show the new activity in the same tab:
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
//creo el nuevo objeto para poder llamarlo
Intent intent = new Intent(QueActivity.this, ProductosCategorias.class);
//Creo la informacion para pasar entre actividades
Bundle informacion= new Bundle();
intent.putExtra("eventos",categorias.get(position).getEventos());
Toast.makeText(getApplicationContext(), "has seleccionado "+ categorias.get(position).getNombre(), Toast.LENGTH_SHORT).show();
//New activity
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
View view = (getLocalActivityManager().startActivity("productos", intent)).getDecorView();
setContentView(view);
}
Activity requested. Here is where i want to override the onBackPressed()
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_productos_categorias);
//Do stuff here
});
Outside onCreate method i'm overriding:
public void onBackPressed(){
System.out.println("Fires");
//Go back to the other intent
}
The problem is when i press the back key i don't get my overrided method fired, insted of that the application gets closed