簡體   English   中英

如何在Android中的兩個片段活動之間切換

[英]How to shift between two fragments activities each other in android

我有兩個片段活動。 現在我想在這之間切換。我也想在第一個片段活動結束后執行此操作。

這是我的片段活動類,

MainActivity.java

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;

public class MainActivity extends FragmentActivity {

    private ViewPager pager;

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

        final int page=2;

        pager = (ViewPager) findViewById(R.id.viewPager);

        pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
        pager.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (pager.getCurrentItem()==page) {
                    return  true;
                }
                return false;
            }
        });

    }

    private class MyPagerAdapter extends FragmentPagerAdapter {

        public MyPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int pos) {
            switch(pos) {

                case 0: return FirstFragment.newInstance("FirstFragment");
                case 1: return SecondFragment.newInstance("SecondFragment");
                case 2: return ThirdFragment.newInstance("ThirdFragment");
                case 3: return FourthFragment.newInstance("FourthFragment");
                case 4: return FifthFragment.newInstance("FifthFragment");
                default: return ThirdFragment.newInstance("DefaultFragment");
            }
        }

        @Override
        public int getCount() {
            return 5;
        }



    }

    public void setCurrentItem(int which) {
        if(pager != null && which >= 0 && which <= 4) {
            pager.setCurrentItem(which);
        }
    }
}

SecondActivity.java

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;

public class SecondActivity extends FragmentActivity {

    private ViewPager pager;

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

        final int page=2;

        pager = (ViewPager) findViewById(R.id.viewPager_1);

        pager.setAdapter(new MyPagerAdapter2(getSupportFragmentManager()));
        pager.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (pager.getCurrentItem()==page) {
                    return  true;
                }
                return false;
            }
        });

    }

    private class MyPagerAdapter2 extends FragmentPagerAdapter {

        public MyPagerAdapter2(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int pos) {
            switch(pos) {

                case 0: return FirstFragment_1.newInstance("FirstFragment_2");
                case 1: return SecondFragment_1.newInstance("SecondFragment_2");
                case 2: return ThirdFragment_1.newInstance("ThirdFragment_2");
                case 3: return FourthFragment_1.newInstance("FourthFragment_2");
                case 4: return FifthFragment_1.newInstance("FifthFragment_2");
                default: return ThirdFragment_1.newInstance("DefaultFragment_2");
            }
        }

        @Override
        public int getCount() {
            return 5;
        }



    }

    public void setCurrentItem(int which) {
        if(pager != null && which >= 0 && which <= 4) {
            pager.setCurrentItem(which);
        }
    }
}

問題我該怎么做?

嘗試覆蓋FirstActivity的第五個fragment(fifthFragment.java)中的OnDetach()方法,並在ondetach()方法內部調用getActivity()。startActivity(secondActivity);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM