user2825729
user2825729

Reputation:

Switching tabs within tabs

MainActivity.java

public class MainActivity extends FragmentActivity {
    // Fragment TabHost as mTabHost
    private FragmentTabHost mTabHost;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

 mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
    mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
    mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab1"),
            Tab1Fragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Tab2"),
            Tab2Fragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Tab3"),
            Tab3Fragment.class, null);
    }
}

Tab1Fragment.java

public class Tab1Fragment extends Fragment  {

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View V = inflater.inflate(R.layout.tab1_view, container, false);

        return V;
    }
}

Tab2Fragment.java

public class Tab2Fragment extends Fragment  {

     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View V = inflater.inflate(R.layout.tab2_view, container, false);

            return V;
        }
    }

Tab3Fragment.java

public class Tab3Fragment extends Fragment  {

     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View V = inflater.inflate(R.layout.tab3_view, container, false);

            return V;
        }
    }

activity_main.xml

android.support.v4.app.FragmentTabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TabWidget
        android:id="@android:id/tabs"

        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"/>

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="0"/>

    <FrameLayout
        android:id="@+id/realtabcontent"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

</LinearLayout>
</android.support.v4.app.FragmentTabHost>

My Output is ::

enter image description here

How can i make the above code FLIP FLOP in nature

Kind of Flip FLOP NATURE

How can i detect on click events on the selected tab and meet by above specifications

Any iDeas

Upvotes: 0

Views: 304

Answers (2)

Bhanu Sharma
Bhanu Sharma

Reputation: 5145

Ohk i will explain this step by step 1.Just take on class like singlton class or you should take one static int counter in any class. 2.when ever you click on tab then on tab clicklistner just first you check what is the value of counter if counter==1 then first activity call if counter==2 then 2nd activity call counter==3 then third activity call

and at the end just increase your counter and if counter>3 then counter=1 ;

counter is static so in whole execution of app it will be constant and same :)

Upvotes: 1

Harshit Rathi
Harshit Rathi

Reputation: 1862

you have to maintain your tab clicks and when you click on tab you have to manager a counter which is increment by click and when you click on tabs you will check that condition according to click counter...

Upvotes: 1

Related Questions