2017-04-25 4 views
-1

私はAPIのフィードからデータを表示するためにrecyclerviewを持っていますが、データの空白行を追加しています。必要なデータだけを追加するにはどうすればよいですか?条件に一致しない場合は空白の行を追加しませんか?ここRecyclerアイテムを見るadd

は私のデータアダプタである:recyclerviewのサイズは「includedData」の大きさであり、あなたが原因これに条件をつけOnBindViewHolderので

public class DataAdapter extends 
RecyclerView.Adapter<DataAdapter.ViewHolder>{ 

    private ArrayList<Included> includedData; 
    private Included matchDataIncluded; 
    private Data matchData; 


    public DataAdapter(ArrayList<Included> includedData) { 
     this.includedData = includedData; 
     this.matchDataIncluded = matchDataIncluded; 
    } 


    @Override 
    public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int i) { 

     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false); 
     return new ViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
      if (Objects.equals(includedData.get(position).getType(), "competitions") && includedData.get(position).getId() != null) { 
       holder.tvCompetitionName.setText(includedData.get(position).getAttributes().); 
      } 
     } 


    } 

    @Override 
    public int getItemCount() { 
     return includedData.size(); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public int getItemViewType(int position) { 
     return position; 
    } 

    public class ViewHolder extends RecyclerView.ViewHolder { 

     private TextView tvCompetitionName; 

     public ViewHolder(View itemView) { 
      super(itemView); 

      tvCompetitionName = (TextView) itemView.findViewById(R.id.competitionNameTV); 
     } 
    } 
} 

答えて

0

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     if (Objects.equals(includedData.get(position).getType(), "competitions") && includedData.get(position).getId() != null) { 
      holder.tvCompetitionName.setText(includedData.get(position).getAttributes().); 
     } 
    } 


} 

、これを見てくださいあなたは空の行を取得している、ちょうどconditonを削除すると、データが表示されます。

+0

ありがとう、私はもともと持っていたものですが、私はその条件に一致するデータを表示する必要があるだけの条件を必要とするので、それらのオブジェクトはデータがあるが条件に合致しないため行が空白になります条件 – MinatoN3886

+0

@ MinatoN3886のように、 "OnBindViewholder"のチェックを作成するのではなく、条件が満たされたときに "includedData"に値を追加する必要があります。 –

+0

申し訳ありませんが、どういう意味なのか分かりませんでした。 – MinatoN3886

関連する問題