获取刷卡到下片段数据的EditText [英] Get EditText data on swipe to next Fragment
问题描述
我有一个观点寻呼机三个片段:
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屋!