我有带 2 个片段的 PagerAdapter,我希望 editText 数据自动更新(传输数据)
Im having PagerAdapter with 2 Fragments and i want editText data to auto update(Transfer Data)
我有带 2 个片段的 PagerAdapter,after/while 我在第一个片段 1 editText1 中输入数据 我希望在下一个刷过的片段 2 editText2 中显示(更新)相同的数据
这是我的 Git-Hub...有人可以帮我解决这个问题
( https://github.com/raj5140/AAASwipe_Update )
我尝试了很多不同的方法,但都不行,请哪位大神帮我解决一下。
好的,我刚看到你的代码。为此,我使用了机器人的 EventBus libaray。
首先我添加了
compile 'org.greenrobot:eventbus:3.0.0'
在 build.gradle 同步了项目。
然后我在代码片段中做了以下更改
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 到库文档
我有带 2 个片段的 PagerAdapter,after/while 我在第一个片段 1 editText1 中输入数据 我希望在下一个刷过的片段 2 editText2 中显示(更新)相同的数据
这是我的 Git-Hub...有人可以帮我解决这个问题 ( https://github.com/raj5140/AAASwipe_Update )
我尝试了很多不同的方法,但都不行,请哪位大神帮我解决一下。
好的,我刚看到你的代码。为此,我使用了机器人的 EventBus libaray。
首先我添加了
compile 'org.greenrobot:eventbus:3.0.0'
在 build.gradle 同步了项目。
然后我在代码片段中做了以下更改
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 到库文档