我有PagerAdapter 2片段,我希望editText数据自动更新(传输数据)

时间:2017-03-11 05:16:11

标签: android fragmentpageradapter

我有PagerAdapter有2个碎片,在我输入第一个fragment1 editText1中的数据后,我希望在下一个刷过的碎片2中显示(更新)相同的数据editText2

这是我的Git-Hub ......有人请帮助我 (https://github.com/raj5140/AAASwipe_Update

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

1 个答案:

答案 0 :(得分:2)

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

首先我加了 build.gradle中的compile 'org.greenrobot:eventbus:3.0.0'已同步项目。

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

<强> 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到库文档