Navigation Architecture Component как назначить onClick

Есть 2 Fragment Main_Fragment_Menu_list и BlankFragment я соединил их в navigation и у меня появился action в котором есть пункт назначения и id. В Main_Fragment_Menu_list есть TextView. Как сделать так чтобы по нажатию на TextView у меня появился BlankFragment?

Я пытался написать что-то что мне казалось похожим но это не правильно.

Java Main_Fragment_Menu_list

public class Main_Fragment_Menu_list extends Fragment {
    TextView textView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.main_fragment_menu_list, container, false);

    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
    {
        textView = requireView().findViewById(R.id.button_task);
        textView.setOnClickListener(Navigation.findNavController(view)
                .navigate(R.id.action_navigation_menu_list_to_blankFragment));
    }
}

Ответы (1 шт):

Автор решения: Sergei Buvaka

Смотрите, что такое onClickListener()? Это колбек который выполняется при нажатии на какую-либо View. Т.е. здесь вы задаете действие которое выполнится, когда пользователь тапнет по вашей View.

Что такое NavigationComponent? Это фреймворк для работы с фрагментами. Он позволяет более удобно работать с фрагментами: открывать новый фрагмент, видеть их иерархию визуально и в целом просто удобная обертка, ничего больше. Никакой магии там нет.

Теперь о вашем вопросе. Клики и фрагменты это вещи из разных областей и связи между ними в вашем вопросе как таковой быть не должно. Если вас смущает setOnClickListener() на TextView, то расслабьтесь, в этом ничего страшного нет. Если вас смущает, что при клике открывается фрагмент, то тут тоже нет ничего страшного. А как по-вашему в приложениях открываются новые экраны при кликах на кнопку?

UPD:

Вы немного неправильно реализуете ваш клик листенер. Метод setOnClickListener() на вход должен принимать экземпляр класса View.OnClickListener(). И тут вы либо создаете класс и в нем реализуете метод onClick(), а в листенер кладете его экземпляр. Либо реализуете анонимный класса, что-то вроде такого:

textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Navigation.findNavController(view)
                        .navigate(R.id.action_navigation_menu_list_to_blankFragment)
            }
        });

либо так если у вас есть Java 8:

textView.setOnClickListener(v -> Navigation.findNavController(view)
                .navigate(R.id.action_navigation_menu_list_to_blankFragment));
→ Ссылка