我尝试使用 OnDeleteData 从我的 RecyclerView 中删除一项。但我在适配器文件上有错误。(如果我将这种方法用于 Activity 很好,但我将我的 Activity 更改为片段)适配器文件:public class menuUserAdapter extends RecyclerView.Adapter<menuUserAdapter.ViewHolder> {public interface dataListener{ void onDeleteData(Transaksi transaksi , int position);}dataListener listener;public menuUserAdapter(ArrayList<Transaksi> listtransaksi, Context context) { this.listtransaksi = listtransaksi; //this.listuser = listuser; this.context = context; listener = (homeFragment) context;}public void onBindViewHolder(@NonNull ViewHolder holder, final int position) { holder.listitem.setOnLongClickListener(new View.OnLongClickListener() { public boolean onLongClick(final View v) { listener.onDeleteData(listtransaksi.get(position),position); } }; }}在片段文件上: public class homeFragment extends Fragment implements menuUserAdapter.dataListener {public void onDeleteData(Transaksi transaksi, int position) { if(reference != null){ reference.child("transaksi").child(transaksi.getKey()).removeValue().addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Toast.makeText(getActivity(), "Data Berhasil Dihapus", Toast.LENGTH_SHORT).show(); } }); } }}listener = (homeFragment) context; 我在这条线上有错误
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
由于您的片段正在实现接口,因此使用片段对其进行初始化,上下文是保存 homeFragment 的 Activity 上下文。
public menuUserAdapter(ArrayList<Transaksi> listtransaksi, Context context, homeFragment fragment) {
this.listtransaksi = listtransaksi;
this.context = context;
listener = fragment;
}
在你的片段中
menuUserAdapter adapter = menuUserAdapter(listtransaksi, getActivity(), this);
希望对你有帮助。
添加回答
举报
0/150
提交
取消