Как разместить рекламу случайно между RecyclerView?

1

Я использую FastAdapter в своем приложении, и я хочу размещать объявления случайно между RecyclerView. Для ex - как объявление после 3 RecyclerView пунктов, то после 4, затем после 2 и так далее и так далее.

Вот как я использую FastAdapter:

FastItemAdapter<HRequest> fastItemAdapter = new FastItemAdapter<>();
fastItemAdapter.withSelectable(true);

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());

HRequest hRequest = new HRequest(imageUID);
fastItemAdapter.add(helpRequest);
recyclerView.setAdapter(fastItemAdapter);

Здесь HRequest.java код файла:

public class HRequest extends AbstractItem<HRequest, HRequest.ViewHolder> {

        public String imageURL;

        public HRequest() {

        }

        public HRequest(String imageURL) {
            this.imageURL = imageURL;
        }

        // Fast Adapter methods
        @Override
        public int getType() {
            return R.id.recycler_view;
        }
        @Override
        public int getLayoutRes() {
            return R.layout.h_request_list_row;
        }
        @Override
        public void bindView(ViewHolder holder) {
            super.bindView(holder);

            holder.imageURL.setText(imageURL);

        }
        // Manually create the ViewHolder class
        protected static class ViewHolder extends RecyclerView.ViewHolder {

            TextView imageURL;

            public ViewHolder(View itemView) {
                super(itemView);
                imageURL = (TextView)itemView.findViewById(R.id.imageURL);

if (!imageURL.getText().toString().isEmpty()) {

if (imageURL.getText().toString().startsWith("https://firebasestorage.googleapis.com/") || imageURL.getText().toString().startsWith("content://")) {
                    Picasso.with(itemView.getContext())
                            .load(imageURL.getText().toString())
                            .into(homelessImage);
                } else {
                    Toast.makeText(itemView.getContext(), "some problem", Toast.LENGTH_SHORT).show();
                }

            } else {
                Toast.makeText(itemView.getContext(), "no imageUID found", Toast.LENGTH_SHORT).show();
            }

            }
        }

    }

Как я могу достичь того, что хочу?

  • 0
    Хороший вопрос, но нет необходимости добавлять, please see details к своим заголовкам. Держите их как можно более краткими и свободными от чата! Благодарю.
Теги:
android-recyclerview
admob
fastadapter

1 ответ

2
Лучший ответ

Твой код мне не хватало, чтобы полностью получить картину, но это то, что я придумал. Дайте мне знать, если это работает или что-то мне не хватает.

public class HRequest extends AbstractItem<HRequest, HRequest.ViewHolder> {
    public static int count = 0;
    public static int random = 0;
    public String imageURL;

    public HRequest() {

    }

    public HRequest(String imageURL) {
        this.imageURL = imageURL;
        Random rand = new Random();
        random = random.nextInt(4); 
    }

    // Fast Adapter methods
    @Override
    public int getType() {
        return R.id.recycler_view;
    }
    @Override
    public int getLayoutRes() {
        return R.layout.h_request_list_row;
    }
    @Override
    public void bindView(ViewHolder holder) {
        super.bindView(holder);

        holder.imageURL.setText(imageURL);


if(count >= random ){

   // Load Your Ad
     random = random.nextInt(4);  // Reset the counter to random integer
       count = 0;
     }else{
            count++;
 if (!imageURL.getText().toString().isEmpty()) {

   if(imageURL.getText().toString().startsWith("https://firebasestorage.googleapis.com/") || imageURL.getText().toString().startsWith("content://")) {
                    Picasso.with(itemView.getContext())
                            .load(imageURL.getText().toString())
                            .into(homelessImage);
            } else {
                Toast.makeText(itemView.getContext(), "some problem", Toast.LENGTH_SHORT).show();
            }

        } else {
            Toast.makeText(itemView.getContext(), "no imageUID found", Toast.LENGTH_SHORT).show();
        }

        }

    }
    // Manually create the ViewHolder class
    protected static class ViewHolder extends RecyclerView.ViewHolder {

        TextView imageURL;

        public ViewHolder(View itemView) {
            super(itemView);
            imageURL = (TextView)itemView.findViewById(R.id.imageURL);

    }

}
  • 0
    я должен разместить рекламу в R.layout.h_request_list_row; или какой-то другой файл макета?
  • 0
    Можете ли вы взглянуть на это тоже: stackoverflow.com/questions/41125004/… Пожалуйста?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню