相关疑难解决方法(0)

Android:在viewpager片段之间传递数据的最佳方法

我在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)

android android-fragments android-viewpager

6
推荐指数
2
解决办法
2万
查看次数

如何在viewpager中的fragment之间传递数据?

有一个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)

android xamarin.android xamarin

5
推荐指数
2
解决办法
2万
查看次数