Как удалить элемент из RecycleView, когда этот цикл находится во фрагменте? - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь удалить один элемент из моего RecyclerView с помощью OnDeleteData.но у меня есть ошибка в файле адаптера.(если я использую этот метод для 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; У меня есть erorr в этой строке

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 18 октября 2018

Поскольку ваш фрагмент реализует интерфейс, поэтому инициализируйте его с фрагментом, контекст - это контекст Activity, который содержит homeFragment.

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

в вашем фрагменте

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

Надеюсь, что этопомогает тебе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...