2017-09-23 10 views
1

こんにちは、jsonを使用して作成されたリサイクルビューがあります。私はカテゴリ名とそれがjson配列で繰り返されるtextviewを持っています。私は一度だけ表示する必要があります。onBindHolderのjsonデータに基づいてアンドロイドのRecyclerビューでウィジェットを非表示にする方法

Example : 
Row 1 
**My Category Name 1** 
My list name 1 

Row 2 
My list name 2 

Row 3 
**My Category Name 2** 
My list name 1 

ここで、繰り返し値に基づいて**私のカテゴリ名**を非表示にする必要があります。 すべてが完璧に機能しましたが、スクロールしている間にrecyclerViewが乱れています。

マイアダプタクラス

@Override 
    public void onBindViewHolder(final RecyclerViewQuest.MyViewHolder holder, final int position) { 

     final QuestModel questModel=questModelArrayList.get(position); 

     String masterTitle = questModel.getSurvycat(); 
     if(temptitle.equalsIgnoreCase(masterTitle)) 
     { holder.categoryName.setVisibility(View.GONE); 
     } 
     else 
     { 
      temptitle = masterTitle; 
      holder.categoryName.setVisibility(View.VISIBLE); 
      holder.categoryName.setText(masterTitle); 
     } 

     holder.categoryName.setText(questModel.getSurvycat()); 
     if(questModel.getQformat().equals("Y/N")){ 
      holder.radioGroupQuest.setTag(questModelArrayList.get(position)); 
      holder.questRadio.setText(questModel.getQlist()); 
      holder.layoutRadio.setVisibility(View.VISIBLE); 
      holder.layoutEditText.setVisibility(View.GONE); 

     }else { 
      holder.questEditText.setText(questModel.getQlist()); 
      holder.layoutRadio.setVisibility(View.GONE); 
      holder.layoutEditText.setVisibility(View.VISIBLE); 
     } 



} 

私のJSONデータ

"messageText": [ 
     { 
      "survycatid": 1, 
      "survycat": "Category 1", 
      "qsetid": 1, 
      "qlistid": 1, 
      "qlist": "Are you aware of this", 
      "qformat": "obj" 
     }, 
     { 
      "survycatid": 1, 
      "survycat": "Category 1", 
      "qsetid": 1, 
      "qlistid": 2, 
      "qlist": "If yes, are you aware o.", 
      "qformat": "Y/N" 
     }, 
     { 
      "survycatid": 1, 
      "survycat": "Category 1", 
      "qsetid": 1, 
      "qlistid": 3, 
      "qlist": "If NO, are you aware of anyone who may be benefitted from the scheme, if included", 
      "qformat": "Y/N" 
     }, 
     { 
      "survycatid": 2, 
      "survycat": "Category 2", 
      "qsetid": 1, 
      "qlistid": 2, 
      "qlist": "If yes, can you please provide the of those to be included.", 
      "qformat": "Y/N" 
     }, 
     { 
      "survycatid": 2, 
      "survycat": "Category 2", 
      "qsetid": 1, 
      "qlistid": 5, 
      "qlist": "Additional Comments", 
      "qformat": "TextLine" 
     }, 
     { 
      "survycatid": 2, 
      "survycat": "Category 2", 
      "qsetid": 1, 
      "qlistid": 1, 
      "qlist": "Are you aware of the scheme", 
      "qformat": "Y/N" 
     }, 

私は最初の試みでその作業は、見出しのテキストフィールドを隠そうとしたが、そのがめちゃくちゃ取得、さらにスクロールしながら。私にはこれのための解決策を得てください。

ありがとうございます。その小さなテクニックなら、私の無知には申し訳ありません。

+0

カテゴリを表示し、値を前のアイテムの値と一致させて非表示にする必要があります。 –

+0

サポートのおかげで@AnshulTyagiその作業 –

答えて

0

"temptitle"の値は、クラスのメンバーとして保存しないでください。 questModelArrayList.get(position-1).getSurvycat()questModelArrayList.get(position).getSurvycat()と等しいかどうかを確認する必要があります。このViewHolderでタイトルを非表示にする必要がある場合は、位置が0の特別な場合を思い出してください。

+0

ありがとう@ボンゴ、その作業 –

関連する問題