从片段的适配器 (A) 导航到另一个片段 (B) 时无法解析上下文或应用程序

我试图从一个片段 (A) 导航到另一个片段 (B),但是片段,但第一个片段 (A) 有一个 recyclerView 意思是当我点击任何项目时我应该导航到下一个。我正在使用 android 导航组件,但我无法解析该方法findNavController(xxx),因为它需要片段的 ApplicationContext。, 因为我试过v.getContext(), v.getApplicationContext(), mContext, 但没有运气。


我该如何解决这个问题,下面是onBindViewHolder()RecyclerView Adapter 类中的。?


解决这个问题的最好方法是什么


@Override

    public void onBindViewHolder(@NonNull final CoordinatesViewHolder holder, int position) {


        final Coordinates coord = mCoordinates.get(position);

        holder.place_name.setText(coord.getmUPlaceName());

        holder.view.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {


               NavHostFragment.findNavController(xxx).navigate(R.id.action_bookmarking_to_weatherFragment);

            }

        });




    }


阿晨1998
浏览 160回答 1
1回答

HUX布斯

RecyclerView 的适配器不负责重定向到另一个片段。像这样创建界面public interface OnItemClickListener {    void onItemClicked(int position)}在 RecyclerView 的适配器中添加方法:public class YourAdapterName extend RecyclerView.Adapter...    private OnItemClickListener onItemClickListener    void setOnItemClickListener(OnItemClickListener listener) {        onItemClickListener = listener    }...    @Override    public void onBindViewHolder(@NonNull final CoordinatesViewHolder holder, int position) {        final Coordinates coord = mCoordinates.get(position);        holder.place_name.setText(coord.getmUPlaceName());        holder.view.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if(onItemClickListener != null) {                     onItemClickListener.onItemClicked(position)                }            }        });    }在带有回收器的片段中,在设置适配器的地方添加代码:YourAdapterClassName adapter = new YourAdapterClassName(...init adapter...)adapter.setOnItemClickListener(new OnItemClickListener() {    @Override    public void onItemClicked(int position) {         //Navigate here     }})yourRecyclerName.setAdapter(adapter)希望它会有所帮助)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java