2017-09-06 44 views
5

我想傳遞一些值內按鈕點擊與viewpager選項卡片段更改。我有兩個問題。傳遞一些數據與viewpager.setCurrentItem(位置)

  1. 什麼是傳遞數據的最佳方式?
  2. 如果我使用靜態數據會有什麼問題?等類

    public static string abc="" 
    
    case R.id.IVActionMore: 
    ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.tabs_viewpager); 
    viewPager.setCurrentItem(3); 
    //abc = "action"; 
    break; 
    
+1

你嘗試過** ** addOnPageChangeListener好 –

+0

對我來說是在使用靜態字符串沒有問題,我也用它來繞過 – Pulkit

+1

一些信息,我只在Android開發涉足該鏈接,但你應該使用Context對象來放置數據。靜態不是一個好主意,因爲它們不受生命週期概念的控制,所以你的應用程序可能會被重新加載而不會注意到數據已經消失。 – daniu

回答

1

您可以使用共享偏好設置和獲取數據。使用靜態不是一個好主意。檢查

https://stackoverflow.com/a/23024962/4549220

+0

傳遞數據的最佳方式是什麼? –

+1

您可以檢查此:https://stackoverflow.com/questions/4878159/whats-the-best-way-to-share-data-between-activities https://stackoverflow.com/questions/7885276/how-到共享相同數據的多個活動功能於機器人之間- – Tariqul

1
  1. 使用addOnPageChangeListener

無效addOnPageChangeListener(ViewPager.OnPageChangeListener聽衆) 添加將被調用時的頁面變化或 監聽器遞增滾動。

怎麼樣?

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageScrolled(int position, float 
        positionOffset, int positionOffsetPixels) { 

    } 

    @Override 
    public void onPageSelected(int position) 
    { 

    if(position == 3) 
    { 
      // DO your work 
    } 

    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 

    } 
}); 

的OnClick

buttonOBJ.setOnClickListener(new OnClickListener() 
    { 
      @Override 
      public void onClick(View v) 
      { 
       viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, true); 
      } 
    }); 
+0

我想按鈕點擊更改頁面。 –

+0

@ t.gakk檢查更新回答 –

+0

感謝您的重播。但是「不要使用STATIC,這不是一個好方法」。最好的辦法是什麼?以及如何在代碼中使用它。 –