Android 使用recyclerview firebase上的按钮更新和删除

Android 使用recyclerview firebase上的按钮更新和删除,android,firebase,android-recyclerview,google-cloud-firestore,Android,Firebase,Android Recyclerview,Google Cloud Firestore,祝大家好, 我正在从事一个名为e-School的项目我在firebase adapter和crud操作方面遇到了困难我在一个recyclerview中有一个cardview在该cardview上有一个“更新”和“删除”按钮,我想触发按钮编辑\u t&按钮删除\u t图像链接在这里,还有firebase结构在这里,但我无法使按钮工作需要帮助! 代码如下 //TeacherViewHolder.java public class TeachersViewHolder extends Recycler

祝大家好, 我正在从事一个名为e-School的项目我在firebase adapter和crud操作方面遇到了困难我在一个recyclerview中有一个cardview在该cardview上有一个“更新”和“删除”按钮,我想触发
按钮编辑\u t
&
按钮删除\u t
图像链接在这里,还有firebase结构在这里,但我无法使按钮工作需要帮助! 代码如下

//TeacherViewHolder.java

public class TeachersViewHolder extends RecyclerView.ViewHolder{
public CircleImageView teacherImage;
public TextView teacherName,teacherDesignation;

public TeachersViewHolder(@NonNull View itemView) {
    super(itemView);
    teacherImage = itemView.findViewById(R.id.image_teacher);
    teacherName =  itemView.findViewById(R.id.teacher_nome);
    teacherDesignation = itemView.findViewById(R.id.teacher_designation);
}}
//TeachersAdapter.java

public class TeachersAdapter extends RecyclerView.Adapter<TeachersAdapter.TeacherAdapterViewHolder> {

private ProgressDialog LoadingBar;
FirebaseAuth teacherAuth;
DatabaseReference teacherRef;
FirebaseDatabase db;

public Context c;
public ArrayList<Modal_Teachers> arrayList;

public TeachersAdapter(Context c, ArrayList<Modal_Teachers> arrayList){
    this.c= c;
    this.arrayList = arrayList;

}
@Override
public int getItemCount() {
    return arrayList.size();
}

@Override
public long getItemId(int position) {
    return position;
}

@NonNull
@Override
public TeacherAdapterViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_teachers,parent, false);
    Button edit_t = v.findViewById(R.id.teacher_edit);
    Button delete_t = v.findViewById(R.id.teacher_edit);
    return new TeacherAdapterViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull final TeacherAdapterViewHolder holder, final int position) {
    final Modal_Teachers sTeachers = arrayList.get(position);
    holder.teacherName.setText(sTeachers.getName());
    holder.teacherDesignation.setText(sTeachers.getQualification());
    Picasso.get().load(sTeachers.getPhotourl()).into(holder.teacherImage);


public class TeacherAdapterViewHolder extends RecyclerView.ViewHolder{
    public CircleImageView teacherImage;
    public TextView teacherName,
            teacherDesignation;
    public Button edit_t, delete_t;

    public TeacherAdapterViewHolder(@NonNull View itemView) {

        super(itemView);
        teacherImage = itemView.findViewById(R.id.image_teacher);
        teacherName =  itemView.findViewById(R.id.teacher_nome);
        teacherDesignation = itemView.findViewById(R.id.teacher_designation);
        edit_t = itemView.findViewById(R.id.teacher_edit);
        delete_t = itemView.findViewById(R.id.teacher_delete);
    }
}
}
       holder.edit_t.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent goUpdateTeacher = new Intent(holder.edit_t.getContext(), UpdateTeacher.class);
            goUpdateTeacher.putExtra("photourl", sTeachers.getPhotourl());
            goUpdateTeacher.putExtra("teacherName", sTeachers.getName());
            goUpdateTeacher.putExtra("teacherDesignation", sTeachers.getQualification());

            holder.edit_t.getContext().startActivity(goUpdateTeacher);
        }
    });
公共类教师适配器扩展了RecyclerView.Adapter{
私有进程对话框加载栏;
FirebaseAuth teacherAuth;
数据库参考教师参考;
FirebaseDB数据库;
公共环境c;
公共ArrayList ArrayList;
公共教师助理(上下文c,ArrayList ArrayList){
这个.c=c;
this.arrayList=arrayList;
}
@凌驾
public int getItemCount(){
返回arrayList.size();
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@非空
@凌驾
公共TeacherAdapterViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.list\u教师,家长,false);
按钮编辑=v.findViewById(R.id.teacher\u edit);
按钮删除=v.findViewById(R.id.teacher\u编辑);
返回新的教师适配器(v);
}
@凌驾
BindViewHolder上的public void(@NonNull final TeacherAdapterViewHolder,final int位置){
最终模式=arrayList.get(位置);
holder.teacherName.setText(sTeachers.getName());
holder.teacherDesignation.setText(sTeachers.getQualification());
Picasso.get().load(sTeachers.getPhotourl()).into(holder.teacherImage);
公共类TeacherAdapterViewHolder扩展了RecyclerView.ViewHolder{
公众形象;教师形象;
公共文本视图教师姓名,
教师指定;
公共按钮编辑、删除;
公共TeacherAdapterWilder(@NonNull View itemView){
超级(项目视图);
teacherImage=itemView.findViewById(R.id.image\u教师);
teacherName=itemView.findViewById(R.id.teacher\u nome);
教师名称=itemView.findViewById(R.id.teacher\U名称);
edit\u t=itemView.findviewbyd(R.id.teacher\u edit);
delete\u t=itemView.findviewbyd(R.id.teacher\u delete);
}
}
}

所以伙计们,我试图摆脱这个问题,我尝试编写了很多代码,最终得到了解决方案,这就是解决方案。。。。。 在
TeachersAdapter.java
中的
onBindViewHolder
中有一行代码需要编写,以使我们的按钮正常工作。代码如下……此外,下一个活动的图像链接在此处某处

TeachersAdapter.java

public class TeachersAdapter extends RecyclerView.Adapter<TeachersAdapter.TeacherAdapterViewHolder> {

private ProgressDialog LoadingBar;
FirebaseAuth teacherAuth;
DatabaseReference teacherRef;
FirebaseDatabase db;

public Context c;
public ArrayList<Modal_Teachers> arrayList;

public TeachersAdapter(Context c, ArrayList<Modal_Teachers> arrayList){
    this.c= c;
    this.arrayList = arrayList;

}
@Override
public int getItemCount() {
    return arrayList.size();
}

@Override
public long getItemId(int position) {
    return position;
}

@NonNull
@Override
public TeacherAdapterViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_teachers,parent, false);
    Button edit_t = v.findViewById(R.id.teacher_edit);
    Button delete_t = v.findViewById(R.id.teacher_edit);
    return new TeacherAdapterViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull final TeacherAdapterViewHolder holder, final int position) {
    final Modal_Teachers sTeachers = arrayList.get(position);
    holder.teacherName.setText(sTeachers.getName());
    holder.teacherDesignation.setText(sTeachers.getQualification());
    Picasso.get().load(sTeachers.getPhotourl()).into(holder.teacherImage);


public class TeacherAdapterViewHolder extends RecyclerView.ViewHolder{
    public CircleImageView teacherImage;
    public TextView teacherName,
            teacherDesignation;
    public Button edit_t, delete_t;

    public TeacherAdapterViewHolder(@NonNull View itemView) {

        super(itemView);
        teacherImage = itemView.findViewById(R.id.image_teacher);
        teacherName =  itemView.findViewById(R.id.teacher_nome);
        teacherDesignation = itemView.findViewById(R.id.teacher_designation);
        edit_t = itemView.findViewById(R.id.teacher_edit);
        delete_t = itemView.findViewById(R.id.teacher_delete);
    }
}
}
       holder.edit_t.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent goUpdateTeacher = new Intent(holder.edit_t.getContext(), UpdateTeacher.class);
            goUpdateTeacher.putExtra("photourl", sTeachers.getPhotourl());
            goUpdateTeacher.putExtra("teacherName", sTeachers.getName());
            goUpdateTeacher.putExtra("teacherDesignation", sTeachers.getQualification());

            holder.edit_t.getContext().startActivity(goUpdateTeacher);
        }
    });

所以伙计们,我试图摆脱这个问题,我尝试编写了很多代码,最终得到了解决方案,这就是解决方案。。。。。 在
TeachersAdapter.java
中的
onBindViewHolder
中有一行代码需要编写,以使我们的按钮正常工作。代码如下……此外,下一个活动的图像链接在此处某处

TeachersAdapter.java

public class TeachersAdapter extends RecyclerView.Adapter<TeachersAdapter.TeacherAdapterViewHolder> {

private ProgressDialog LoadingBar;
FirebaseAuth teacherAuth;
DatabaseReference teacherRef;
FirebaseDatabase db;

public Context c;
public ArrayList<Modal_Teachers> arrayList;

public TeachersAdapter(Context c, ArrayList<Modal_Teachers> arrayList){
    this.c= c;
    this.arrayList = arrayList;

}
@Override
public int getItemCount() {
    return arrayList.size();
}

@Override
public long getItemId(int position) {
    return position;
}

@NonNull
@Override
public TeacherAdapterViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_teachers,parent, false);
    Button edit_t = v.findViewById(R.id.teacher_edit);
    Button delete_t = v.findViewById(R.id.teacher_edit);
    return new TeacherAdapterViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull final TeacherAdapterViewHolder holder, final int position) {
    final Modal_Teachers sTeachers = arrayList.get(position);
    holder.teacherName.setText(sTeachers.getName());
    holder.teacherDesignation.setText(sTeachers.getQualification());
    Picasso.get().load(sTeachers.getPhotourl()).into(holder.teacherImage);


public class TeacherAdapterViewHolder extends RecyclerView.ViewHolder{
    public CircleImageView teacherImage;
    public TextView teacherName,
            teacherDesignation;
    public Button edit_t, delete_t;

    public TeacherAdapterViewHolder(@NonNull View itemView) {

        super(itemView);
        teacherImage = itemView.findViewById(R.id.image_teacher);
        teacherName =  itemView.findViewById(R.id.teacher_nome);
        teacherDesignation = itemView.findViewById(R.id.teacher_designation);
        edit_t = itemView.findViewById(R.id.teacher_edit);
        delete_t = itemView.findViewById(R.id.teacher_delete);
    }
}
}
       holder.edit_t.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent goUpdateTeacher = new Intent(holder.edit_t.getContext(), UpdateTeacher.class);
            goUpdateTeacher.putExtra("photourl", sTeachers.getPhotourl());
            goUpdateTeacher.putExtra("teacherName", sTeachers.getName());
            goUpdateTeacher.putExtra("teacherDesignation", sTeachers.getQualification());

            holder.edit_t.getContext().startActivity(goUpdateTeacher);
        }
    });

好的工作!如果这解决了你的问题,请考虑接受你自己的答案。好的工作!如果这解决了你的问题,请考虑接受你自己的答案。