Android studio在标签片段之间传递数据

时间:2017-03-04 12:19:01

标签: android android-fragments

我有两个片段和一个主要活动(带两个标签的标签式活动)。我将在片段f2中收到一个字符串。然后,如果用户将标签从f2滑动到f1,则f1应该会收到f2中的字符串。

我使用主要活动来保存两个片段

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                F1 tab1 = new F1();
                return tab1;
            case 1:
                F2 tab2 = new F2();
                return tab2;
            default:
                return null;
        }
    }

F1:

public class F1 extends Fragment {

TextView x;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.profile, container, false);
    x = (TextView) rootView.findViewById(R.id.section_label);
    return rootView;
}

}

F2:

public class F2 extends Fragment {

String x;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.profile, container, false);
    x = "myTest";
    return rootView;
}

}

那么如何将字符串x传递给F1?感谢。

1 个答案:

答案 0 :(得分:0)

实现viewPager pageListener并从fragment1获取变量并将其传递给片段2.

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {

        }

        @Override
        public void onPageScrollStateChanged(int state) {                
            tab2.setX(tab1.getX(););
        }
    });