我正在尝试从 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);
}
});
附言您是否曾经尝试过按照文档进行操作?他们的描述几乎没有(如果有的话)流程。
一段他们谈论的是猫和狗,然后下一段他们谈论的是苹果和橙子。作为新手/初学者,这令人非常沮丧,因为您必须以某种方式弄清楚它们是如何相互关联/相互关联的。
然后,当我们询问时,我们会得到傲慢的回应,这些回应直接指向了相同的文档。就像真的...
但是,我知道什么,我只是一个初学者。