Как использовать getItemCount для отображения всех ViewHolder в recyclerAdapter? - PullRequest
0 голосов
/ 25 августа 2018

как использовать getItemCount для показа всех ViewHolder в recyclerAdapter?

Я хочу показать все viewHolder в утилите и в getItemCount. Что я должен написать?

example

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private ArrayList<ModelItem_slider> requestItemsSlider;
private ArrayList<ModelItem_volume> requestItemsVolume;
private ArrayList<ModelItem_volume2> requestItemsVolume2;
private ArrayList<ModelItem_numbers> requestItemsNumber;
private ArrayList<ModelItem_news> requestItemsNews;
private Object[] myData;


private Context context;

public RecyclerAdapter(Context context
        , ArrayList<ModelItem_slider> requestItems
        , ArrayList<ModelItem_volume> requestItems1
        , ArrayList<ModelItem_numbers> requestItems2
        , ArrayList<ModelItem_news> requestItems3
        , ArrayList<ModelItem_volume2> requestItems4

) {
    this.context = context;
    this.requestItemsSlider = requestItems;
    this.requestItemsVolume = requestItems1;
    this.requestItemsNumber = requestItems2;
    this.requestItemsNews = requestItems3;
    this.requestItemsVolume2 = requestItems4;
}

// viewHolders

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    switch (viewType) {
        case 0:
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_slider, parent, false);
            return new SliderViewHolder(view);
        case 1:
            View view2 = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_volume, parent, false);
            return new VolumeViewHolder(view2);
        case 2:
            View view3 = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_news, parent, false);
            return new NewsViewHolder(view3);
        case 3:
            View view4 = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_volume2, parent, false);
            return new Volume2ViewHolder(view4);
        default:
            View view1 = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_number, parent, false);
            return new NumberViewHolder(view1);
    }
}

/// onBind и позиция

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

    if (holder instanceof SliderViewHolder) {
        final ModelItem_slider modelItem = requestItemsSlider.get(position);
        ((SliderViewHolder) holder).textSliderView.image(modelItem.getUrl());
        ((SliderViewHolder) holder).sliderLayout.addSlider(((SliderViewHolder) holder).textSliderView);

    } else if (holder instanceof NumberViewHolder) {
        final ModelItem_numbers modelItem_numbers = requestItemsNumber.get(position);
        ((NumberViewHolder) holder).name_number.setText(modelItem_numbers.getName_number());
        ((NumberViewHolder) holder).value_nubmer.setText(modelItem_numbers.getValue_number());
        ((NumberViewHolder) holder).profit_number.setText(modelItem_numbers.getProfit_number());

    } else if (holder instanceof NewsViewHolder) {
        final ModelItem_news modelItem1 = requestItemsNews.get(position);
        ((NewsViewHolder) holder).news.setText(modelItem1.getNews());
        ((NewsViewHolder) holder).news1.setText(modelItem1.getNews1());

    } else if (holder instanceof VolumeViewHolder) {
        ModelItem_volume modelItem_volume = requestItemsVolume.get(position);
        ((VolumeViewHolder) holder).name_volume.setText(modelItem_volume.getName_volume());
        ((VolumeViewHolder) holder).value_volume.setText(modelItem_volume.getValue_volume());
        ((VolumeViewHolder) holder).profit_volume.setText(modelItem_volume.getProfit_volume());

    }else if (holder instanceof Volume2ViewHolder) {
        ModelItem_volume2 modelItem_volume2 = requestItemsVolume2.get(position);
        ((Volume2ViewHolder) holder).name2.setText(modelItem_volume2.getName2());
        ((Volume2ViewHolder) holder).value2.setText(modelItem_volume2.getValue2());
        ((Volume2ViewHolder) holder).profit2.setText(modelItem_volume2.getProfit2());

    }
}

@Override
public int getItemViewType(int position) {
    return position > 0 ? 1 : 0;
}

/// мне нужна помощь здесь

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

}

в моей деятельности и recuclerAdapter не является нулевым в моем проекте это например

recyclerAdapter = new RecyclerAdapter(BaseActivity.getContext(), null, null, null, null, null);
  LinearLayoutManager linearLayoutManager = new LinearLayoutManager(BaseActivity.getContext());
  linearLayoutManager.setOrientation(LinearLayout.VERTICAL);
  recyclerView.setLayoutManager(linearLayoutManager);
  recyclerView.setAdapter(recyclerAdapter);

Внутри возврата. Какую сумму положить, чтобы показать все клетки.

1 Ответ

0 голосов
/ 25 августа 2018

Я думаю, вы можете использовать это так:

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