我在视图寻呼机中有三个片段:
A - > B - > ç
我想在片段A中将两个edittexts的字符串滑动到片段B以在片段B中显示它们。可以更改edittext数据直到滑动。
有人建议在每一个之后监听输入和发送数据,但我知道的那个变化的回调状态每次都是关键点击(这可能很昂贵)。我如何在不使用按钮的情况下,因为它们彼此相邻,以获得更愉快的体验?
答案 0 :(得分:1)
您可以在滑动时查看EditText
的数据;如果它不为空,那么您可以使用Bundle
将其发送到任何其他片段,因为您正在处理片段
答案 1 :(得分:0)
在@I的帮助下。伦纳德我找到了解决方案here。 它已被弃用,因此我使用了较新的版本。我将下面的代码放在我的fragment类中,因为我需要访问数据而不会使事情变得复杂。它就像一个魅力!
在页面监听器回调中,我建议,调用一个用于片段间通信的接口来对您的家庭活动进行操作,或者从活动中调用可以完成工作的相应片段。
// set content to next page on scroll start
vPager = (ViewPager) getActivity().findViewById(R.id.viewpager);
vPager.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) {
if (state == ViewPager.SCROLL_STATE_SETTLING) {
// ViewPager is slowing down to settle on a page
if (vPager.getCurrentItem() == 1) {
// The page to be settled on is the second (Preview) page
if (!areFieldsNull(boxOne.getText().toString(), boxTwo.getText().toString()))
// call interface method in view pager activity using interface reference
communicator.preview(boxOne.getText().toString(), boxTwo.getText().toString());
}
}
}
});