Android 如何在视图寻呼机适配器中初始化我的片段时向其添加标记

Android 如何在视图寻呼机适配器中初始化我的片段时向其添加标记,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,这是我的密码;Addviewer、dataviewer和settingsviewer是我的片段类。我想在初始化过程中给每个方法一个标记,以便在另一个片段或mainactivity中使用它们 import java.util.ArrayList; import java.util.HashMap; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import androi

这是我的密码;Addviewer、dataviewer和settingsviewer是我的片段类。我想在初始化过程中给每个方法一个标记,以便在另一个片段或mainactivity中使用它们

import java.util.ArrayList;
import java.util.HashMap;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.ViewGroup;

public class viewPagerAdapter extends FragmentPagerAdapter {
    ArrayList<Fragment> arf;

    public viewPagerAdapter(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
        arf = new ArrayList<Fragment>();
        arf.add(new DataViewer());
        arf.add(new AddViewer());
        arf.add(new SettingsViewer());
    }

    @Override
    public Fragment getItem(int arg0) {
        // TODO Auto-generated method stub
        return arf.get(arg0);
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return arf.size();
    }
}
import java.util.ArrayList;
导入java.util.HashMap;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentPagerAdapter;
导入android.view.ViewGroup;
公共类viewPagerAdapter扩展了FragmentPagerAdapter{
ArrayList arf;
公共viewPagerAdapter(碎片管理器fm){
超级(fm);
//TODO自动生成的构造函数存根
arf=新的ArrayList();
添加(新的DataViewer());
add(newaddviewer());
添加(新设置视图());
}
@凌驾
公共片段getItem(int arg0){
//TODO自动生成的方法存根
返回arf.get(arg0);
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回arf.size();
}
}
使用的InstanceItem(…)和destroyItem(…)方法跟踪片段的创建/销毁。或者,在构建过程中,您可以始终在片段上设置参数(Bundle b)。前

    private SparseArray<Fragment> registeredFragments = new SparseArray<>();

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Fragment fragment = (Fragment) super.instantiateItem(container, position);  
        //TODO check if it's the type you want, and set the tag
        registeredFragments.put(position, fragment);
        return fragment;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        super.destroyItem(container, position, object);
        registeredFragments.remove(position);
    }
private SparseArray registeredFragments=new SparseArray();
@凌驾
公共对象实例化项(视图组容器,int位置){
Fragment Fragment=(Fragment)super.instanceItem(容器,位置);
//TODO检查它是否是您想要的类型,并设置标记
注册碎片。放置(位置,碎片);
返回片段;
}
@凌驾
公共项(视图组容器、int位置、对象){
超级项目(容器、位置、对象);
注册碎片。移除(位置);
}

谢谢。但我通过使用谷歌指南在片段之间进行通信,而不使用片段中的标记来修复它。总之,我了解了android中的sparsearray。“我想在初始化过程中给每个方法一个标记”你这是什么意思?在创建片段的那一刻,在viewpager构造函数中,我想为每个片段设置一个标记,以便以后访问它们。