Android JAVA 导航到使用导航组件传递数据的片段

时间:2021-03-05 00:01:05

标签: android android-fragments

我正在尝试从 RecyclerView 适配器导航到详细信息片段,并传递一个 id 值。

我可以使用以下命令从 RecyclerView 中选择的项目导航以打开 GameDetailFragment:

    this.cardGame.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            NavDirections action = ScoreboardFragmentDirections.actionScoreboardFragmentToGameDetailFragment();
            Navigation.findNavController(v).navigate(action);
        }
    });

但是,在点击 CardView 项到 GameDetailFragment 查询详细信息时,我似乎找不到如何传递数据。

我可以在 Kotlin 中找到很多示例,但我只是在学习 Java 和 Android,不想从 Kotlin 开始。

使用文档中的示例:

@Override
public void onClick(View view) {
   EditText amountTv = (EditText) getView().findViewById(R.id.editTextAmount);
   int amount = Integer.parseInt(amountTv.getText().toString());
   ConfirmationAction action = SpecifyAmountFragmentDirections.confirmationAction();
   action.setAmount(amount);
   Navigation.findNavController(view).navigate(action);
}

这似乎不准确,因为文档表明在类名的END中添加了“action”一词。

我决定查看实际生成的类文件,当然没有修改它。将“操作”一词添加到类文件名的 BEGINNING 或始发和接收目的地的组合中。

结果:

    this.cardGame.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String strTemp = "todo";
            ScoreboardFragmentDirections.ActionScoreboardFragmentToGameDetailFragment action = ScoreboardFragmentDirections.actionScoreboardFragmentToGameDetailFragment();
            action.setMessage(strTemp);
            Navigation.findNavController(v).navigate(action);
        }
    });

附言您是否曾经尝试过按照文档进行操作?他们的描述几乎没有(如果有的话)流程。

一段他们谈论的是猫和狗,然后下一段他们谈论的是苹果和橙子。作为新手/初学者,这令人非常沮丧,因为您必须以某种方式弄清楚它们是如何相互关联/相互关联的。

然后,当我们询问时,我们会得到傲慢的回应,这些回应直接指向了相同的文档。就像真的...

但是,我知道什么,我只是一个初学者。

0 个答案:

没有答案