我有一個觀點尋呼機三個片段上的刷卡數據:獲取的EditText到下一個片段
甲 - >乙 - 「ç
我希望得到我的兩個edittexts的字符串片段A上滑動到片段B以在片段B中顯示它們。編輯文本數據可能會更改直到滑動。
有人建議在每一個之後監聽輸入和發送數據,但我知道這種改變的回調狀態每次點擊鍵(這可能是昂貴的)。我如何不使用按鈕,因爲他們彼此相鄰,爲更愉快的體驗?
我有一個觀點尋呼機三個片段上的刷卡數據:獲取的EditText到下一個片段
甲 - >乙 - 「ç
我希望得到我的兩個edittexts的字符串片段A上滑動到片段B以在片段B中顯示它們。編輯文本數據可能會更改直到滑動。
有人建議在每一個之後監聽輸入和發送數據,但我知道這種改變的回調狀態每次點擊鍵(這可能是昂貴的)。我如何不使用按鈕,因爲他們彼此相鄰,爲更愉快的體驗?
在@I的幫助下。倫納德我發現了一個解決方案here。 它已被棄用,所以我使用了較新的版本。我將下面的代碼放在我的片段類中,因爲我需要訪問數據而不會使事情複雜化。它像一個魅力!
在頁面偵聽器回調函數中,我建議調用一個用於片段間通信的接口來對您的家庭活動執行操作,或從活動調用可完成工作的適當片段。
// 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
的數據;如果它不爲空,則可以使用Bundle
將它發送到任何其他片段,因爲您正在處理片段
如何檢查viewpager的滑動?我試圖查看當前頁面是否改變或覆蓋用戶可見性提示方法。 – Frank
你可以在Activity中使用'viewPager.setOnPageChangeListener()'來根據選定的代碼運行代碼。見http://stackoverflow.com/questions/22184406/run-code-when-user-swipes-out-of-viewpager-fragment –