Как я могу поменять фрагмент изнутри адаптера на функцию щелчка? - PullRequest
0 голосов
/ 05 июня 2019

Итак, у меня есть активность - "MainWindow".

Внутри него три фрагмента. Один из фрагментов - «HomeFragment»

Внутри HomeFragment имеется вид утилизатора с использованием адаптера «AvailableRequestsAdapter»

Внутри AvailableRequestsAdapter есть кнопка, при нажатии которой я хочу, чтобы «HomeFragment» был заменен на «SelectBuyerFragment», и я хочу, чтобы адаптер также передавал строку «service_id» в «SelectBuyerFragment».

Как мне это сделать?

Я знаю, что могу поменять фрагменты с помощью диспетчера фрагментов, но как мне это сделать из адаптера?

Внутри моего адаптера:

public class AvailableRequestsHolder extends  RecyclerView.ViewHolder {
        ImageView serviceIcon;
        TextView serviceTitle;
        public AvailableRequestsHolder (final View itemView){
            super(itemView);
            serviceIcon = itemView.findViewById(R.id.service_icon);
            serviceTitle = itemView.findViewById(R.id.service_title);
            serviceIcon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                //Swap HomeFragment for SelectBuyerFragment here
                //Also pass "service_id" string to the new fragment.
                }
            });
        }
    }

1 Ответ

0 голосов
/ 05 июня 2019

Определите интерфейс (например: onSelectBuyerClicked) в HomeFragement и внедрите его в действие, которое содержит HomeFragement: реализация должна поменять HomeFragment и передать service_id на SelectBuyerFragment.

В AvailableRequestsAdapter вы можете проверить, реализует ли контекст действия интерфейс перед вызовом

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