Max1809
Fortgeschrittenes Mitglied
- 6
Hallo zusammen,
ich verwende in meinem Projekt die Support Library um die ActionBar auch pre-3.0 devices zur Verfügung zu stellen.
Nun bin ich allerdings bei dem Problem, dass unter Android Geräten mit Version kleiner 3.0 keine ActionBar angezeigt wird - ebenso keine Tabs. Eigentlich halte ich mich an die Support Library Regeln (meine ich).
Leider habe ich keinen CallStack, da dies jeweils Testgeräte von Beta-Testern waren.
Meine Tabs enthalten jeweils Fragmente und diese Fragmente sind von der Klasse "android.support.v4.app.Fragment" abgeleitet.
Evtl. habe ich auch was grundlegendes falsch gemacht. Ich möchte euch kurz einen Ausschnitt aus dem Konstrukt geben.
Meine MainActivity die sich um das Handling der ActionBar mit den Tabs kümmert:
Mein TabListener:
Und jede Fragment-Activity sieht folgendermaßen aus:
ich verwende in meinem Projekt die Support Library um die ActionBar auch pre-3.0 devices zur Verfügung zu stellen.
Nun bin ich allerdings bei dem Problem, dass unter Android Geräten mit Version kleiner 3.0 keine ActionBar angezeigt wird - ebenso keine Tabs. Eigentlich halte ich mich an die Support Library Regeln (meine ich).
Leider habe ich keinen CallStack, da dies jeweils Testgeräte von Beta-Testern waren.
Meine Tabs enthalten jeweils Fragmente und diese Fragmente sind von der Klasse "android.support.v4.app.Fragment" abgeleitet.
Evtl. habe ich auch was grundlegendes falsch gemacht. Ich möchte euch kurz einen Ausschnitt aus dem Konstrukt geben.
Meine MainActivity die sich um das Handling der ActionBar mit den Tabs kümmert:
Code:
public class Hauptmenue_extended extends ActionBarActivity implements OnClickListener {
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tabB = actionBar.newTab(); tabB.setText("Home");
tabB.setIcon(R.drawable.icon_home);
tabB.setTabListener(new TabListener<Startmenue_activity>(this, "Start", Startmenue_activity.class));
actionBar.addTab(tabB);
Tab tabA = actionBar.newTab();
tabA.setText("");
tabA.setIcon(R.drawable.icon_nachrichten_sel);
tabA.setTabListener(new TabListener<Nachrichten_activity>(this, "Nachrichten", Nachrichten_activity.class));
actionBar.addTab(tabA);
Tab tabC = actionBar.newTab();
tabC.setText("");
tabC.setIcon(R.drawable.icon_favoriten);
tabC.setTabListener(new TabListener<Favoriten_activity>(this, "Favoriten", Favoriten_activity.class));
actionBar.addTab(tabC);
Code:
public static class TabListener<T extends Fragment> implements ActionBar.TabListener {
private final FragmentActivity myActivity;
private final String myTag;
private final Class<T> myClass;
public TabListener(FragmentActivity activity, String tag, Class<T> cls) {
myActivity = activity;
myTag = tag;
myClass = cls; }
@Override public void onTabSelected(Tab tab, FragmentTransaction ft) {
Fragment myFragment = myActivity.getSupportFragmentManager().findFragmentByTag(myTag);
// Check if the fragment is already initialized
if (myFragment == null) {
// If not, instantiate and add it to the activity
myFragment = Fragment.instantiate(myActivity, myClass.getName());
ft.add(android.R.id.content, myFragment, myTag);
} else {
// If it exists, simply attach it in order to show it
ft.attach(myFragment);
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
Fragment myFragment = myActivity.getSupportFragmentManager() .findFragmentByTag(myTag);
if (myFragment != null) {
// Detach the fragment, because another one is being attached
ft.detach(myFragment);
}
}
@Override public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
} }
Und jede Fragment-Activity sieht folgendermaßen aus:
Code:
public class Nachrichten_activity extends Fragment implements
OnChildClickListener, OnClickListener { ...
Zuletzt bearbeitet: