TabHost mit Fragments

F

Freaky256

Neues Mitglied
0
Ich wuerde gerne zwei bestehende Activities in form von Tabs anzeigen, d.h. jede Activity sollte in einem Tab angezeigt werden. Hier die Definition fuer die Activities:

Code:
 public class MonthView extends Activity implements OnClickListener {    ...  }   
 public class DayView extends Activity {       ...  }
Dazu habe ich eine TabsFragment Klasse die wie folgt aussieht:

Code:
public class TabsFragment extends Fragment implements OnTabChangeListener {
 
    private String month = "month";
    private String day = "day";
 
    private View mRoot;
    private TabHost tabHost;
    private int mCurrentTab;
    
    private Resources ressources = getResources();
    
 
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        mRoot = inflater.inflate(R.layout.tabs_fragment, null);
        tabHost = (TabHost) mRoot.findViewById(android.R.id.tabhost);
        setupTabs();
        return mRoot;
    }
 
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        setRetainInstance(true);
 
        tabHost.setOnTabChangedListener(this);
        tabHost.setCurrentTab(mCurrentTab);
        // manually start loading stuff in the first tab
        updateTab(month, R.id.tab_1);
    }
 
    private void setupTabs() {
        tabHost.setup(); // you must call this before adding your tabs!
        tabHost.addTab(newTab(month));
        tabHost.addTab(newTab(day));
    }
 
    private TabSpec newTab(String tag) {
      
        View indicator = LayoutInflater.from(getActivity()).inflate(R.layout.tabs,(ViewGroup) mRoot.findViewById(android.R.id.tabs), false);
        
        
        Intent intentMonth = new Intent().setClass(getActivity(), MonthView.class);
        TabSpec tabSpec = tabHost.newTabSpec(tag).setContent(intentMonth).setIndicator(indicator);
        
        return tabSpec;
    }
    
   
  
    public void onTabChanged(String tabId) {
        
        if (month.equals(tabId)) {
            updateTab(tabId, R.id.tab_1);
            mCurrentTab = 0;
            return;
        }
        if (day.equals(tabId)) {
            updateTab(tabId, R.id.tab_2);
            mCurrentTab = 1;
            return;
        }
    }
 
    private void updateTab(String tabId, int placeholder) {
        FragmentManager fm = getFragmentManager();
        if (fm.findFragmentByTag(tabId) == null) {
            fm.beginTransaction().replace(placeholder, new TabsFragment(), tabId).commit();
        }
    }
}

Mein Problem ist dass ich nicht genau weis wie ich dieses Fragment jetzt verwenden soll?
 

Ähnliche Themen

Tiefkuehlpizza
Antworten
2
Aufrufe
963
Tiefkuehlpizza
Tiefkuehlpizza
B
Antworten
4
Aufrufe
539
bb321
B
FabianDev
Antworten
5
Aufrufe
587
swa00
swa00
Zurück
Oben Unten