I have StartActivity
class. It extends from Fragment
:
The code for StarActivity.java
is shown below:
public class StartActivity extends Fragment {
public static Context appContext;
ActionBar actionbar;
int state = 0;
/** Called when the activity is first created. */
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main, container,
false);
return rootView;
}
// call draw Tab method
public void drawTab(){
//ActionBar
actionbar = getActivity().getActionBar();
if(state == 0){
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab PlayerTab = actionbar.newTab().setText("Fragment A");
ActionBar.Tab StationsTab = actionbar.newTab().setText("Fragment B");
Fragment PlayerFragment = new AFragment();
Fragment StationsFragment = new BFragment();
PlayerTab.setTabListener(new MyTabsListener(PlayerFragment));
StationsTab.setTabListener(new MyTabsListener(StationsFragment));
actionbar.addTab(PlayerTab);
actionbar.addTab(StationsTab);
state++;
}
}
In MainClass.java I declare a variable: Fragment fragment1 = new StartActivity();
How to I can call drawTab
method. I try fragment.drawTab
but it can't. If I call drawTab
in onCreateView
in StartActivity.java,
it runs OK. but when I don't call drawTab()
in onCreateView, error happens:(
RUN ERROR:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main, container,
false);
return rootView;
}
RUN OK:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main, container,
false);
drawTab();
return rootView;
}
MainClass.java
private void selectItem(int position) {
Toast.makeText(getBaseContext(), Integer.toString(position), 1).show();
Fragment fragment1 = new StartActivity();
switch (position) {
case 5:
break;
case 1:
((StartActivity) fragment1).drawTab();
FragmentManager fragmentManager1 = getFragmentManager();
fragmentManager1.beginTransaction().replace(R.id.content_frame, fragment1).commit();
break;
default:
break;
}