2017-04-25 109 views
-1

我有一个recyclerview显示来自api提要的数据,但它是添加空白行数据。我如何只添加所需的数据,如果不符合标准不添加空白行?Recycler查看项添加

这里是我的数据适配器:

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().); 
     } 
    } 


} 

由于recyclerview的大小为“includedData”的大小和OnBindViewHolder你把条件由于其你正在获得空行,只是删除条件,数据将被显示。

+0

谢谢,是这就是我原来有,但我需要的条件只需要显示数据符合该条件,行是空白的,因为这些对象有数据,但不匹配的条件,所以我需要排除那些不匹配的行条件 – MinatoN3886

+0

@ MinatoN3886,所以当条件满足时,您必须在“includedData”中添加值,而不是在“OnBindViewholder”上创建检查 –

+0

对不起,我不明白你的意思,你能给我一个例子吗? – MinatoN3886