繁体   English   中英

来自适配器的开放片段 model class

[英]open fragment from adapter model class

我正在创建应用程序,我在其中实现了一个 BottomSheetDialogFragment 以从其他片段内部打开,这项工作很好。

但是现在我希望从我的适配器 class 打开相同的 BottomSheetDialogFragment,它扩展了 FirebaseRecyclerAdapter 但不知道如何从那里打开。

这是我的适配器 class 代码:

public class updateRoomAdapter extends FirebaseRecyclerAdapter<model,updateRoomAdapter.myViewHolder> {


    public updateRoomAdapter(@NonNull FirebaseRecyclerOptions<model> options) {
        super(options);
    }

    @Override
    protected void onBindViewHolder(@NonNull myViewHolder holder,final int position, @NonNull model model) {
        holder.id.setText("Room Id:"+model.getRoomId());
        holder.description.setText("Description: "+model.getDescription());
        holder.ac.setText("AC: "+model.getAC());
        holder.rent.setText("Rent: "+model.getRent());
        holder.nob.setText("No.of Beds: "+model.getNumber_of_beds());
        Glide.with(holder.img.getContext()).load(model.getImageUrl()).into(holder.img);
        holder.edit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                UpdateRoomFragment updateRoomFragment=new UpdateRoomFragment();
                updateRoomFragment.show(getSupportFragmentManager(),updateRoomFragment.getTag());//this line showing error because getSupportFragmentManager() cannot be use here
            }
        });

    }

    @NonNull
    @Override
    public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.updatesinglerow,parent,false);
        return new updateRoomAdapter.myViewHolder(view);
    }

    class myViewHolder extends RecyclerView.ViewHolder {
        CircleImageView img;
        ImageView edit;
        TextView id,description,rent,ac,nob;
        public myViewHolder(@NonNull View itemView) {
            super(itemView);
            img=(CircleImageView) itemView.findViewById(R.id.img1);
            id=(TextView) itemView.findViewById(R.id.nametext);
            description=(TextView) itemView.findViewById(R.id.coursetext);
            rent=(TextView) itemView.findViewById(R.id.rent);
            ac=(TextView) itemView.findViewById(R.id.ac);
            nob=(TextView) itemView.findViewById(R.id.bed);
            edit=(ImageView)itemView.findViewById(R.id.imageView2);

        }
    }
}

如何解决这个问题?

嗨 RIZWAN ALI 请使用此代码

val updateRoomFragment = CreateEventBottomsheet()
            updateRoomFragment.show(
                (viewHolder.itemView.context as AppCompatActivity).supportFragmentManager,
                updateRoomFragment.getTag()
            )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM