2017-01-10 13 views
0

Webサービスの呼び出し時にビューページャでフラグメントを再開していますが、フラグメントを渡す引数を更新できませんでした。それは、最初は何が渡されたのか、同じままです。ビューポートでフラグメントを開始したときにフラグメント引数を更新できませんでした

コード:

@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には2つのフラグメントがあります – Juned

+0

onPostExecution:引数[state]は更新されていますが、フラグメントには渡されません – Juned

答えて

0

あなたのonPostExecutesetupViewPagerを呼び出す必要はありません。以前に追加された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 
     } 
    } 
} 

ハッピーコーディング。

関連する問題