android - 我有带有 2 个 fragment 的 PagerAdapter,我希望 editText 数据自动更新(传输数据)

标签 android fragmentpageradapter

我有带有 2 个 fragment 的 PagerAdapter,在我在第一个fragment1 editText1 中输入数据之后/同时,我希望在下一个滑动的fragment2 editText2 中显示(更新)相同的数据

这是我的 Git-Hub...请有人帮我解决这个问题 (https://github.com/raj5140/AAASwipe_Update)

我尝试了很多不同的方法,但它不起作用,请一些人帮助我。

最佳答案

好的,我刚刚看到你的代码。为此,我使用了机器人的 EventBus libaray。

首先我添加了 在 build.gradle 中编译 'org.greenrobot:eventbus:3.0.0' 同步了项目。

然后我在 fragment 中进行了以下更改,这是代码

Welcome_Slide1.java

public class Welcome_Slide1 extends Fragment {


        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View myFragmentView = inflater.inflate(R.layout.welcome_slide1, container, false);
            EditText editText = (EditText) myFragmentView.findViewById(R.id.editText2);
            editText.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                }

                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    EventBus.getDefault().post(s.toString());
                }

                @Override
                public void afterTextChanged(Editable s) {

                }
            });
            return myFragmentView;
        }
}

Welcome_Slide2

public class Welcome_Slide2 extends Fragment {

EditText editText;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View myFragmentView = inflater.inflate(R.layout.welcome_slide2, container, false);
    editText = (EditText) myFragmentView.findViewById(R.id.editText);
    return myFragmentView;
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    EventBus.getDefault().register(this);
}

@Override
public void onDetach() {
    super.onDetach();
    EventBus.getDefault().unregister(this);
}

@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(String s){
    editText.setText(s);
}
}

希望这对您有帮助。欲了解更多信息,请访问 link到库文档

关于android - 我有带有 2 个 fragment 的 PagerAdapter,我希望 editText 数据自动更新(传输数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42731629/

相关文章:

android - 调整 ImageView 的大小以适应纵横比

android - 在 FragmentPagerAdapter 中的 Fragment 之间传递值

android - 为什么在调用第一个 fragment 时会自动调用第二个 fragment ?

java - 在Eclipse项目中导入maven库和maven示例

android - 用kotlin改造,无法创建@Body

android - 将 dp 转换为 float

android - 如何确定本地玩家是否赢得了 Google Play TurnBasedMatch?

android - 在 sdk 23 或 22 上,标题根本不会出现在 PagerTitleStrip 中

java - 使用 FragmentPagerAdapter 从 Fragment 以编程方式更改选项卡

android - 为什么我应该使用 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter?