Dans mon application, j'essaie d'ouvrir une activité à partir d'un bouton dans un onglet en utilisant l'intention. Mais au lieu d'ouvrir dans le même onglet la nouvelle activité couvre tout l'écran et les onglets ne sont pas visibles. Comment puis-je ouvrir plus d'une activité dans le même onglet ..Plusieurs activités dans un seul onglet Android
Le code suivant est de ma classe principale :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("OPT").setContent(new Intent(this, TabGroup1Activity.class)));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("EDIT").setContent(new Intent(this, TabGroup2Activity.class)));
tabHost.setCurrentTab(1);
}
Ce qui suit est le code de TabGroupActivity:
public class TabGroupActivity extends ActivityGroup{
ArrayList<String> list;
Window window;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
if(list.equals(null))
{
list = new ArrayList<String>();
}
}
@Override
public void finishFromChild(Activity child)
{
LocalActivityManager manager = getLocalActivityManager();
int index = list.size() -1;
if(index < 1)
{
finish();
return;
}
manager.destroyActivity(list.get(index), true);
list.remove(index);
index--;
String lastId = list.get(index);
Intent in = manager.getActivity(lastId).getIntent();
window = manager.startActivity(lastId, in);
setContentView(window.getDecorView());
}
public void startChildActivity(String Id, Intent intent)
{
window = getLocalActivityManager().startActivity(Id, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
if(window != null)
{
list.add(Id);
setContentView(window.getDecorView());
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_BACK)
return true;
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
{
if(keyCode == KeyEvent.KEYCODE_BACK)
{
onBackPressed();
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
public void onBackPressed()
{
int length = list.size();
if(length > 1)
{
Activity current = getLocalActivityManager().getActivity(list.get(length - 1));
current.finish();
}
}
}
le code pour le TabGroup1Activity TabGroup2Activity également avoir le même code:
public class TabGroup1Activity extends TabGroupActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startChildActivity("TestClass", new Intent(this,TestClass.class));
}
}
Code pour l'activité TestClass:
public class TestClass extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.newview);
}
}
S'il vous plaît aidez-moi est de résoudre mon problème ..
Merci à l'avance ...
J'ai lu cet article mais c'est déroutant pour moi c'est pourquoi j'ai posté ici ... –
Vous devez d'abord comprendre le concept de fragments, alors vous pouvez facilement l'utiliser .. il y a trop d'exemples – Nermeen
Je veux utiliser des onglets pas des fragments ... –