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:
Dazu habe ich eine TabsFragment Klasse die wie folgt aussieht:
Mein Problem ist dass ich nicht genau weis wie ich dieses Fragment jetzt verwenden soll?
Code:
public class MonthView extends Activity implements OnClickListener { ... }
public class DayView extends Activity { ... }
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?