Как смешать две разные данные ArrayList в одном адаптере представления переработчика, чтобы показать в определенных точках - PullRequest
0 голосов
/ 01 мая 2020

У меня есть два разных arrayList в одном окне просмотра. Я успешно загрузил два содержимого Arraylist в одном обзоре утилит, но второй ArrayList отображается внизу первых элементов ArrayList. Это не то, что я хочу, я хочу показать данные второго Arraylist после успешного отображения некоторых данных из первого ArrayList. Например, после каждых 5 элементов из первого ArrayList добавьте один элемент из второго Arraylist. Так будет и дальше. Это что-то похожее на это, но второй Arraylist - это тот, который заменяет рекламу в imAGE ниже.

enter image description here

Я использовал это в своем классе адаптера. Где данные - это основной ArrayList, а promo_data - это ArrayList, который я хочу добавить в определенные позиции.

    public int getItemViewType(int position) {

        if (position < data.size() ) {
            return VIEW_TYPE_MAIN;
        }

        if (position - promo_data.size() < data.size()) {
            return VIEW_TYPE_PROMO;
        }

        return -1;
    }```

```  @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
       View view = LayoutInflater.from(ctx).inflate(R.layout.main_content,parent, false);
        if(viewType == VIEW_TYPE_MAIN){
            return new MainViewHolder(view);
        }

        if(viewType == VIEW_TYPE_PROMO){
            return new PromoViewHolder(view);
        }
        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {

        if(viewHolder instanceof MainViewHolder){
            ((MainViewHolder) viewHolder).populatViews(data.get(i));
        }

        if(viewHolder instanceof PromoViewHolder){

            ((PromoViewHolder) viewHolder).populate(promo_data.get(i - data.size())));
        }
    }


    @Override
    public int getItemCount() {
        return data.size()  + promo_data.size();
    } ```

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...