导航操作未在Jetpack导航上执行

时间:2020-01-31 09:38:02

标签: java android navigation android-jetpack

面对Jetpack Navigation的一个奇怪问题,我们将不胜感激。我有一个导航图,如下所示:

我想使用jetpack导航从一个片段导航到另外两个片段。 到目前为止,我只能从 entry_fragment 导航到 second_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;
        }
    }
};

在第一个按钮上单击,我只是想吐司,而在单击第二个按钮上,实际上可以导航至 SecondFragment 。我在这里做错了什么?以及使用导航进行导航的最佳做法是什么。

预先感谢

1 个答案:

答案 0 :(得分:0)

尝试使用NavHostFragment.findNavController(fragment).navigate(R.id.action_created_from_graph) 而不是Navigation.createNavigateOnCLickListener

我的内存不足了,因此语法可能会有些许偏离,但这只是它的主要内容。