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状态。