Android 将捆绑包从一个选项卡片段传递到另一个选项卡片段

Android 将捆绑包从一个选项卡片段传递到另一个选项卡片段,android,Android,正在创建应用程序,我想在其中将捆绑数据从一个选项卡片段传递到另一个选项卡片段。我已经创建了两个选项卡,并在一个片段中获取列表,但现在我想使用复选框从Recyclerview列表中选择项目,并在滑动时将此选定项目设置为另一个选项卡片段。使用viewpager创建选项卡。在第二个选项卡片段集捆绑包和第一个选项卡片段中的获取捆绑包,但不起作用 在第二个片段中,我设置了bundle Bundle data = new Bundle(); data.putString("name",con

正在创建应用程序,我想在其中将捆绑数据从一个选项卡片段传递到另一个选项卡片段。我已经创建了两个选项卡,并在一个片段中获取列表,但现在我想使用
复选框从
Recyclerview
列表中选择项目,并在滑动时将此选定项目设置为另一个选项卡片段。使用
viewpager
创建选项卡。在第二个选项卡片段集捆绑包和第一个选项卡片段中的获取捆绑包,但不起作用

在第二个片段中,我设置了bundle

    Bundle data = new Bundle();
    data.putString("name",contactArrayList.get(position).getContactName());
    data.putString("mobile",contactArrayList.get(position).getContactNumber());
    Fragment fragment = FragmentInfo.newInstance(1);
    fragment.setArguments(data);
在第一个片段中,我得到了一个包

if (bundle != null) {
       String name = bundle.getString("name");
       String mobile = bundle.getString("mobile");
        // object of Model Class
        mydata.setName(name);
        mydata.setMobile(mobile);
        myDataArrayList.add(mydata);

    } 
试试这个:

创建通过主活动跨
片段访问标记的机制在
FragmentB
onCreateView()
中调用
getTag()
。然后将其传递给主要活动。当
FragmentA
需要将某个内容传递给
FragmentB
时,它会从
MainActivity
中检索该内容

 public static class TabsAdapter extends FragmentPagerAdapter
  implements ActionBar.TabListener, ViewPager.OnPageChangeListener {

  private final Context mContext;
        private final ActionBar mActionBar;
        private final ViewPager mViewPager;
        private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();

        static final class TabInfo {
            private final Class<?> clss;
            private final Bundle args;

            TabInfo(Class<?> _class, Bundle _args) {
                clss = _class;
                args = _args;
            }
        }

  public TabsAdapter(FragmentActivity activity, ViewPager pager) {
   super(activity.getSupportFragmentManager());
            mContext = activity;
            mActionBar = activity.getActionBar();
            mViewPager = pager;
            mViewPager.setAdapter(this);
            mViewPager.setOnPageChangeListener(this);
        }

  public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) {
            TabInfo info = new TabInfo(clss, args);
            tab.setTag(info);
            tab.setTabListener(this);
            mTabs.add(info);
            mActionBar.addTab(tab);
            notifyDataSetChanged();
        }

  @Override
  public void onPageScrollStateChanged(int state) {
   // TODO Auto-generated method stub

  }

  @Override
  public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
   // TODO Auto-generated method stub

  }

  @Override
  public void onPageSelected(int position) {
   // TODO Auto-generated method stub
   mActionBar.setSelectedNavigationItem(position);
  }

  @Override
  public void onTabReselected(Tab tab, FragmentTransaction ft) {
   // TODO Auto-generated method stub

  }

  @Override
  public void onTabSelected(Tab tab, FragmentTransaction ft) {
   Object tag = tab.getTag();
            for (int i=0; i<mTabs.size(); i++) {
                if (mTabs.get(i) == tag) {
                    mViewPager.setCurrentItem(i);
                }
            }
  }

  @Override
  public void onTabUnselected(Tab tab, FragmentTransaction ft) {
   // TODO Auto-generated method stub

  }

  @Override
  public Fragment getItem(int position) {
   TabInfo info = mTabs.get(position);
            return Fragment.instantiate(mContext, info.clss.getName(), info.args);
  }

  @Override
  public int getCount() {
   return mTabs.size();
  }

 }
公共静态类TabsAdapter扩展了FragmentPagerAdapter
实现ActionBar.TablListener、ViewPager.OnPageChangeListener{
私有最终上下文mContext;
私人终审法院;
专用最终查看页面mViewPager;
private final ArrayList mtab=new ArrayList();
静态最终类TabInfo{
私人期末班;
私有最终包args;
TabInfo(类_类,捆绑参数){
clss=_类;
args=_args;
}
}
公共选项卡dapter(片段活动活动、ViewPager寻呼机){
super(activity.getSupportFragmentManager());
mContext=活动;
mActionBar=activity.getActionBar();
mViewPager=寻呼机;
mViewPager.setAdapter(此);
mViewPager.setOnPageChangeListener(此);
}
public void addTab(ActionBar.Tab选项卡,类cls,Bundle args){
TabInfo=新的TabInfo(clss,args);
tab.setTag(信息);
tab.setTableListener(此);
添加(信息);
mActionBar.addTab(tab);
notifyDataSetChanged();
}
@凌驾
公共无效onPageScrollStateChanged(int状态){
//TODO自动生成的方法存根
}
@凌驾
已滚动页面上的公共无效(int-position、float-positionOffset、int-positionOffsetPixels){
//TODO自动生成的方法存根
}
@凌驾
已选择页面上的公共无效(内部位置){
//TODO自动生成的方法存根
mActionBar.setSelectedNavigationItem(位置);
}
@凌驾
已重新选择公共无效页签(页签,碎片事务){
//TODO自动生成的方法存根
}
@凌驾
已选择的公共事务(选项卡,碎片事务ft){
Object tag=tab.getTag();

对于(int i=0;iin哪个方法将在下一个片段中获取捆绑值?在onCreateView中..onCreateView仅在viewpager中调用一次,当您第一次添加和显示fragmetns.public静态FragmentInfo newInstance(int columnCount){返回新FragmentInfo();}如果我在fragment中调用,那么它将使方法成为非静态的,如果我将此设置为非静态的,那么我的viewpager适配器将显示错误。您需要首先实现一个接口,这样您就可以知道屏幕上当前显示的是哪个片段,因为这两个片段都处于onResume状态。