android fragment切换多页时保证切换前的页的状态不被销毁(红色字体)

来源:互联网 发布:excel数据交换 编辑:程序博客网 时间:2024/05/22 10:40
package ks.pager;import android.os.Message;import android.os.Parcelable;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.view.ViewGroup;import ks.msg.KSMessage;import ks.photo.KSPhotoMainActivity;import ks.rename.KSRenameMainActivity;import ks.watchdog.KSWatchdogMainActivity;/** * Created by BaiKaiShui on 2016/9/5. */public class SectionsPagerAdapter  extends FragmentPagerAdapter {    private final int ACTIVITY_COUNT = 3;    private MyFragment [] fragmentes = new MyFragment[ACTIVITY_COUNT];    private KSMessage massege = null;    public SectionsPagerAdapter(FragmentManager fm, KSMessage msg) {        super(fm);        massege = msg;    }    @Override    public Parcelable saveState() {        return super.saveState();    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {<span style="background-color: rgb(255, 102, 102);"><span style="white-space:pre"></span>// 保证状态栈不销毁        //super.destroyItem(container, position, object);</span>    }    @Override    public Fragment getItem(int position) {        switch(position) {            case 0:                return (fragmentes[position] = KSPhotoMainActivity.newInstance(position, massege));            case 1:                return (fragmentes[position] = KSRenameMainActivity.newInstance(position, massege));            case 2:                return (fragmentes[position] = KSWatchdogMainActivity.newInstance(position, massege));        }        return null;    }    @Override    public int getCount() {        return ACTIVITY_COUNT;    }    @Override    public CharSequence getPageTitle(int position) {        switch (position) {            case 0:                return "图像压缩";            case 1:                return "文件重命名";            case 2:                return "监视狗";        }        return null;    }    public void onEvent(Message msg){        for (int i = 0; i < ACTIVITY_COUNT; i++) {            if(fragmentes[i] != null)                fragmentes[i].onEvent(msg);        }    }    public void onActivityResult(String name, String dir){        for (int i = 0; i < ACTIVITY_COUNT; i++) {            if(fragmentes[i] != null)                fragmentes[i].onActivityResult(name, dir);        }    }}

0 0
原创粉丝点击