在滑动到下一个片段时获取EditText数据

时间:2016-01-04 15:41:19

标签: user-interface android-fragments android-viewpager

我在视图寻呼机中有三个片段:

A - > B - > ç

我想在片段A中将两个edittexts的字符串滑动到片段B以在片段B中显示它们。可以更改edittext数据直到滑动。

有人建议在每一个之后监听输入和发送数据,但我知道的那个变化的回调状态每次都是关键点击(这可能很昂贵)。我如何在不使用按钮的情况下,因为它们彼此相邻,以获得更愉快的体验?

2 个答案:

答案 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());
            }
        }
    }
});