2017-10-16 8 views
0

英語の訳はありません。アクティビティからデータを渡してページャフラグメントを表示します。

改造を使用してタブレイアウトを作成しました。タブ名やタイトルに問題はありません。 しかし、私はフラグメントにデータIDを渡そうとしましたが、問題があります。私のフラグメントで

 public void onResponse(Response<CategoryResponse> response, Retrofit retrofit) { 
      mProgressDialog.hide(); 
      FragmentKonten deskripsi; 
      if(response.body().getStatus().equals("ok")) 
      { 
       CategoryResponse produkListResponse = response.body(); 
       for (Category category : produkListResponse.getListProduk()) 
       { 
        bundle.putInt("category",category.getId()); 

        deskripsi=new FragmentKonten(); 
        deskripsi.setArguments(bundle); 

        adapter.addFragment(deskripsi,category.getTitle()); 
        adapter.notifyDataSetChanged(); 
       } 
      } 
      else{ 
       pesan(getActivity()); 
      } 
     } 

:My活動で

私が欲しい

bundle = this.getArguments(); 

    Toast.makeText(getActivity(),String.valueOf(bundle.getInt("category")),Toast.LENGTH_LONG).show(); 

結果は以下のとおりです。

カテゴリタイトルとID:

Diet Sehat = 3 

Khas Indonesia = 4 

Resep Kue = 7 

Resep Macanegara = 9 

etc 

しかし、実際の結果は以下のとおりです。

Diet Sehat = 9 

Khas Indonesia = 9 

Resep Kue = 9 

Resep Macanegara = 9 

etc 
+0

をあなたは正しいデータを取得しているかどうかを確認するためにあなたのAPIレスポンスをデバッグしようとしたことがありますか? –

+0

@ZayidMohammedはいです。 APIに問題はありません。 –

+0

それぞれのループの中で何をしていますか? –

答えて

0

あなたが試してみました:

for (Category category : produkListResponse.getListProduk()) 
       { 
        Bundle bundle = new Bundle(); //I guess you're missing this 
        bundle.putInt("category",category.getId()); 

        deskripsi=new FragmentKonten(); 
        deskripsi.setArguments(bundle); 

        adapter.addFragment(deskripsi,category.getTitle()); 
        adapter.notifyDataSetChanged(); 
       } 
+0

、またはグローバルになっているので、常に最後の値(9)になり、ループ内で定義します –

関連する問題