gpt4 book ai didi

java - 当回收在 Fragment 上时,如何从 RecyclerView 中删除项目?

转载 作者:行者123 更新时间:2023-12-02 10:41:52 25 4
gpt4 key购买 nike

我尝试使用 OnDeleteData 从 RecyclerView 中删除一个项目。但我的适配器文件有错误。 (如果我对 Activity 使用此方法,那很好,但我将 Activity 更改为 fragment )

适配器文件:

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);
}
};
}
}

在 fragment 文件上:

  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; 我在这一行有错误

请帮助我

最佳答案

由于您的 fragment 正在实现接口(interface),因此使用 fragment 对其进行初始化,上下文是保存 homeFragment 的 Activity 上下文。

public menuUserAdapter(ArrayList<Transaksi> listtransaksi, Context context, homeFragment fragment) {
this.listtransaksi = listtransaksi;
this.context = context;
listener = fragment;
}

在你的 fragment 中

menuUserAdapter adapter = menuUserAdapter(listtransaksi, getActivity(), this);

希望对您有帮助。

关于java - 当回收在 Fragment 上时,如何从 RecyclerView 中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52872222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com