2017-09-06 7 views
1

こんにちは私はプログラミングに新しい、私のナビゲーション上のタブを切り替えるときの問題です。もう一度ロードすると、データが重複します。Recyclerで複製したアダプタ

httpClient.get(url, object : JsonHttpResponseHandler() { 
      override fun onSuccess(statusCode: Int, headers: Array<out Header>, response: JSONArray) { 
       for (i in 0 until response.length()) { 
        val seminar = Seminar.fromJson(response.getJSONObject(i)) 

        seminarsAdapter.add(SeminarItem(seminar)) 
       } 
      } 

      override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) { 
       Log.d("Seminars Fragment", throwable?.localizedMessage) 
      } 
     }) 
+1

だから、明確なアダプタのリストと一緒にそれを実装する方法を説明しているthis postに外観を与える –

答えて

0

上にしてみてください、しかし、あなたがそれらを一つずつまたは将来のロジックのより多くの何かを追加したいと思うでしょう場合には、私はあなたが管理するためにあなたのAdapterDiffUtilを追加提案あなたのAdapter

DiffUtilの内容は、第二one.Itに二つのリストを出力最初のリストを変換し、更新操作のリストの間の差を計算することができ、ユーティリティクラスはRecyclerViewの更新を計算するために使用することができていますアダプタ。

は、データを更新する必要がある場合add` `前AdapterRecyclerView

0

すでにseminarsAdapterにデータがある場合は、既存のデータセットに追加されます。

clearタイプをseminarsAdapterタイプに追加してから、onSuccess(...)に先に電話してください。

0
httpClient.get(url, object : JsonHttpResponseHandler() { 
     override fun onSuccess(statusCode: Int, headers: Array<out Header>, 
response: JSONArray) { 
if(seminarsAdapter.size()>0){ 
seminarsAdapter.clear(); 
} 
      for (i in 0 until response.length()) { 
       val seminar = Seminar.fromJson(response.getJSONObject(i)) 

       seminarsAdapter.add(SeminarItem(seminar)) 
      } 
     } 

     override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) { 
      Log.d("Seminars Fragment", throwable?.localizedMessage) 
     } 
    }) 

明確なセミナーアダプターのリストは、api callの応答として、データは繰り返されません。 あなたが新しい項目を追加する前にリストをクリアすることができ、コード

+0

.sizeは、未解決の参照です。私のセミナーアダプターはFastAdapter <> –

関連する問題