2016-01-04 95 views
0

我有一個觀點尋呼機三個片段上的刷卡數據:獲取的EditText到下一個片段

甲 - >乙 - 「ç

我希望得到我的兩個edittexts的字符串片段A上滑動到片段B以在片段B中顯示它們。編輯文本數據可能會更改直到滑動。

有人建議在每一個之後監聽輸入和發送數據,但我知道這種改變的回調狀態每次點擊鍵(這可能是昂貴的)。我如何不使用按鈕,因爲他們彼此相鄰,爲更愉快的體驗?

回答

0

在@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()); 
      } 
     } 
    } 
}); 
1

您可以在滑動時檢查EditText的數據;如果它不爲空,則可以使用Bundle將它發送到任何其他片段,因爲您正在處理片段

+0

如何檢查viewpager的滑動?我試圖查看當前頁面是否改變或覆蓋用戶可見性提示方法。 – Frank

+0

你可以在Activity中使用'viewPager.setOnPageChangeListener()'來根據選定的代碼運行代碼。見http://stackoverflow.com/questions/22184406/run-code-when-user-swipes-out-of-viewpager-fragment –