获取刷卡到下片段数据的EditText [英] Get EditText data on swipe to next Fragment

查看:185
本文介绍了获取刷卡到下片段数据的EditText的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个观点寻呼机三个片段:

I have three fragments in a view pager:

A - > B - > C

A -> B -> C

我想获得在片段A我的两个edittexts的琴弦上滑动到片段B向他们展示在片段B中的EditText数据可以被改变,直到刷卡。

I would like to get the strings of my two edittexts in Fragment A on swipe to Fragment B to show them in Fragment B. The edittext data may be changed up until the swipe.

有人曾建议听打字各一个发送数据,但回调我知道这改变状态每个键点击(它可以是昂贵的)。我如何不借助按钮,因为它们紧挨着对方,一个更愉快的经验?

Someone has suggested listening for typing and sending data after each one, but the callbacks I know for that change state EVERY key click (which can be expensive). How do I this without using buttons, since their right next to each other, for a more delightful experience?

推荐答案

从@I帮助。伦纳德我找到了解决办法<一href=\"http://stackoverflow.com/questions/22184406/run-$c$c-when-user-swipes-out-of-viewpager-fragment\">here.
这是pcated德$ P $,所以我用较新的版本。我把下面的code在我的片段类,因为我需要访问数据,而无需复杂的事情。它的工作原理就像一个魅力!

With help from @I. Leonard I found a solution here. It was deprecated so I used the newer version. I put the below code in my fragment class because I needed access to the data without complicating things. It works like a charm!

在页面侦听器回调,我建议,呼吁片段间通信的接口做在您的家庭活动的行动或调用相应的片段,可以做的工作,从活动中。

On the page listener callback, I suggest, calling an interface for inter-fragment communication to do your actions on your home activity or to call the appropriate fragment that can do the work, from the activity.

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

这篇关于获取刷卡到下片段数据的EditText的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆