Навигация не выполняется в Jetpack Navigation - PullRequest
0 голосов
/ 31 января 2020

Столкнувшись со странной проблемой с Jetpack Navigation, любая помощь будет высоко ценится. У меня есть график навигации, как показано ниже:

Я бы хотел перейти от одного фрагмента к двум другим фрагментам, используя навигацию Jetpack. До сих пор я был в состоянии перейти только к second_fragment из entry_fragment , как показано на рисунке ниже. Navigation Graph

Мой EntryFragment.class:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.fragment_entry,container,false);
    v.findViewById(R.id.fragmentOneButton).setOnClickListener(ls);
    v.findViewById(R.id.fragmentTwoButton).setOnClickListener(ls);
    return v;
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
}

private final View.OnClickListener ls = new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.fragmentOneButton:
                Toast.makeText(getActivity().getApplicationContext(), "First Button", Toast.LENGTH_SHORT).show();
Navigation.createNavigateOnClickListener(R.id.action_entry_fragment_to_first_fragment).onClick(view);
                break;
            case R.id.fragmentTwoButton:
                Toast.makeText(getActivity().getApplicationContext(), "Second Button", Toast.LENGTH_SHORT).show();
                Navigation.createNavigateOnClickListener(R.id.action_entry_fragment_to_second_fragment).onClick(view);
                break;
        }
    }
};

При первом нажатии кнопки я получаю только тост, а при нажатии второй кнопки я могу фактически перемещаться Второй фрагмент . Что я тут делаю не так? и что является лучшим способом навигации с помощью Навигации.

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

1 Ответ

0 голосов
/ 31 января 2020

попробуйте использовать NavHostFragment.findNavController(fragment).navigate(R.id.action_created_from_graph) вместо Navigation.createNavigateOnCLickListener

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

...