[英]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.