Как добавить элементы в просмотрщик одним нажатием кнопки? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть экран, на котором мне нужно отобразить три элемента в обзоре переработчика одним нажатием кнопки.

В моей Деятельности, где у меня есть мое представление переработчика, я хочу знать логику, которая позволит мне добавитьпредметы на мой адаптер реселлера просмотра по нажатию моей кнопки.Вот фрагмент кода моей деятельности:

List<OustChatModel> chatList;
chatList=new ArrayList<>();
    chatList.add(new OustChatModel(1,
            "Sample Image Card",
            R.drawable.app_icon,
            "sample description"));
    chatList.add(new OustChatModel(2,
            "Sample Video Card",
            "Sample Video description",
            R.drawable.app_icon
            ));
    chatList.add(new OustChatModel(3,
            "Textcard title",
            "Textcard description"
            ));
    final OustChatAdapter adapter = new OustChatAdapter(this, chatList,CourseChatActivity.this);


    proceedChat.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

                recyclerView.setAdapter(adapter);


        }
    });

Когда я выполняю этот код, все три элемента моего приложения arraylist нажатием кнопки.Я хочу, чтобы элементы появлялись один под другим только после нажатия кнопки.

Pls.Предлагаю подходящую логику.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Чтобы каждый элемент отображался один за другим при нажатии кнопки (что означает 3 щелчка):

// Create the empty array list object
List<OustChatModel> emptyList = new ArrayList<>();

// Create a second array list containing objects
List<OustChatModel> chatList = new ArrayList<>();
chatList.add(new OustChatModel(1,
            "Sample Image Card",
            R.drawable.app_icon,
            "sample description"));

chatList.add(new OustChatModel(2,
            "Sample Video Card",
            "Sample Video description",
            R.drawable.app_icon));

chatList.add(new OustChatModel(3,
            "Textcard title",
            "Textcard description"));

// Pass empty list into the adapter
final OustChatAdapter adapter = new OustChatAdapter(this, emptyList, CourseChatActivity.this);

// set the adapter for the recycler view
recyclerView.setAdapter(adapter);

// counter to track number of clicks
int numberOfClicks = 0;

proceedChat.setOnClickListener(new View.OnClickListner() {
    @Override
    public void onClick(View view){
        if (numberOfClicks < chatList.length()) {
            adapter.addItem(chatList.get(numberOfClicks));
            numberOfClicks++;
        }
    }
});

В вашем классе OustChatAdapter у вас будет следующий метод:

public void addItem(OustChatModel model){
   chatList.add(model);
   notifyDataSetChanged(); // This is to notify the adapter that the data in the recyclerview has been modified.
} 

Sidenote: Я предполагаю, что вы занимаетесь CourseChatActivity.Поправьте меня, если я ошибаюсь, но если это так, нет необходимости передавать экземпляр класса, используя this, а затем передать CourseChatActivity.this после в OustChatAdapter.Было бы лучше установить конструктор адаптера для использования:

new OustChatAdapter(this, emptyList)
0 голосов
/ 28 февраля 2019

Попробуйте это: code

chatList=new ArrayList<>();
int clickAmount = 0;
chatList.add(new OustChatModel(1,
        "Sample Image Card",
        R.drawable.app_icon,
        "sample description"));
chatList.add(new OustChatModel(2,
        "Sample Video Card",
        "Sample Video description",
        R.drawable.app_icon
        ));
chatList.add(new OustChatModel(3,
        "Textcard title",
        "Textcard description"
        ));
final OustChatAdapter adapter = new OustChatAdapter(this, chatList,CourseChatActivity.this);


proceedChat.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

            newList =new ArrayList<>();
            if(clickAmount < 3){
            newList.add(clickAmount)
            }
            recyclerView.setAdapter(adapter, newList);
            clickAmount ++;

    }
});

Каждый раз, когда вы щелкаете, добавляете другой элемент в массив, а затем отображаете этот список вместо одного со всеми тремя элементами с ним.

...