我在ViewPager活动中有3个片段.所有3个片段都有输入字段.在这里,我试图将前两个片段数据传递给第三个片段.我在这里阅读了一些帖子,其中大多数建议使用接口(即通过父活动传递数据)我也经历了这个链接 http://developer.android.com/training/basics/fragments/communicating.html
接口:当我们通过某个用户事件发送数据时,使用接口是很好的方法.这里我试图在没有任何用户事件的情况下发送数据.因此我想到onPause()因为总是调用onPause().但ViewPager的功能不同.加载片段时,也会加载相邻的片段.我会成功地在第一个片段和第三个片段之间传递数据.但是第二个片段的onPause()不会被调用,除非我导航到一些与它不相邻的片段(在我的情况下不存在)
Setter/Getters:我在几篇文章中读过人们说不使用二传手/吸气剂(我还没有理解原因)吸气鬼和二传手设计不佳?看到矛盾的建议
捆绑:我还没考虑过这个.由于我在这里再次感到困惑,我将如何使用bundle传递数据.(我应该在哪个方法中发送数据?以及如何?)
对不起,如果我的问题听起来很愚蠢.我正在尝试理解片段,我想知道在viewpager中片段之间传递数据的最佳方法.先感谢您.
TabPAgerAdapter - >
package com.jbandroid.model;
import com.jbandroid.fragment.LocationInfoFragment;
import com.jbandroid.fragment.PersonalInfoFragment;
import com.jbandroid.fragment.PostInfoFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class TabsPagerAdapter extends FragmentPagerAdapter {
public TabsPagerAdapter(FragmentManager fm){
super(fm);
}
@Override
public Fragment getItem(int index) {
switch(index) {
case 0 : //PostInfoFragment
return new PostInfoFragment();
case 1 : //LocationInfoFragment
return new LocationInfoFragment();
case 2 : //PersonalInfoFragment
return new PersonalInfoFragment();
}
return null;
}
@Override
public int getCount() {
// get item count - …Run Code Online (Sandbox Code Playgroud) 有一个tabLayout和ViewPager。所以我想将数据从fragment1传递到fragment2。
注意:fragment1 与fragment2 位于VIewPager 中。所以我无法按照正常方式传递数据。
FragmentTransaction fragmentTx=this.FragmentManager.BeginTransaction();
TracksByGenres fragTrack=new TracksByGenres();
fragTrack.AddData(items[e.Position]);
//get our item from listview
fragmentTx.Replace(Resource.Id.fragmentContainer,fragTrack);
fragmentTx.AddToBackStack(null);
fragmentTx.Commit();
Run Code Online (Sandbox Code Playgroud)