2017-01-10 80 views
0

我正在重新啓動視圖頁面調用Web服務中的片段,但無法更新片段中傳遞的參數。它仍然是一樣的,第一次通過的是什麼。無法更新片段參數重新啓動viewpager中的片段

代碼:

@Override 
protected void onPostExecute(String response) { 
state = mOverviewData.getState();  
setupViewPager(mViewPager, isSuccess); 
} 

private void setupViewPager(ViewPager viewPager, boolean isSuccess) 
{ 

     Adapter adapter = new Adapter(getSupportFragmentManager()); 
     if(isSuccess){ 
      fab.setVisibility(View.VISIBLE); 
      Fragment chartFrag = new OverviewChartFrag(); 
      Bundle arg = new Bundle(); 
      arg.putString("state_name", state); 
      arg.putSerializable("total_blocks", mOverviewData.getTotalBlock()); 
      arg.putSerializable("block_status_obj", mOverviewData.getBlockStatusData()); 
      arg.putParcelableArrayList("mineral_wise_list", (ArrayList<? extends Parcelable>) mineralList); 
      chartFrag.setArguments(arg); 

      Fragment blocksFrag = new OverviewDataFrag(); 
      arg = new Bundle(); 
      arg.putString("state_name", state); 
      arg.putParcelableArrayList("public_data_list", (ArrayList<? extends Parcelable>) mOverviewData.getPublicTableData()); 
      blocksFrag.setArguments(arg); 

      adapter.addFragment(chartFrag, getResources().getString(R.string.chart_tab)); 
      adapter.addFragment(blocksFrag, getResources().getString(R.string.data_tab)); 
      viewPager.setAdapter(adapter); 
     } else { 
      fab.setVisibility(View.GONE); 
      Fragment noNetFrag = new ServerErrorFrag(); 
      adapter.addFragment(noNetFrag, getResources().getString(R.string.error)); 
      viewPager.setAdapter(adapter); 
     } 
    } 
+0

你有多少片段用於你的'ViewPager'。 –

+0

Viewpager有兩個片段 – Juned

+0

onPostExecution:參數[狀態]正在更新,但它沒有傳入片段 – Juned

回答

0

你不必調用setupViewPageronPostExecute內。使用下面的代碼獲取之前添加的Fragment的參考,並完成您的工作。

Adapter adapter = (Adapter) viewPager.getAdapter(); 
// we don't need but its a fail safe 
if (adapter != null) { 
    int childCount = adapter.getCount(); 
    for (int index = 0; index < childCount; index++) { 
     Fragment fragment = (Fragment) adapter.instantiateItem(viewPager, index); 
     // safe check 
     if (fragment != null) { 
      // you have a valid reference of your fragment, update its content or GUI 
     } 
    } 
} 

快樂編碼。