在警报框后从数据库刷新 RecyclerView

Refresh RecyclerView from database after a Alert box

我想刷新我的片段,我的片段文件名为 "SecondFragment.java",我当前的文件名为 leaveAdapter 那么我应该如何在我从警报框按确定后刷新回收视图

请大家帮忙

这里是 recyclerview 适配器代码:

public class leavesAdapter extends 
RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private LayoutInflater inflater;
List<DataLeaves> leaves= Collections.emptyList();
String value;

public leavesAdapter(Activity activity, List<DataLeaves> leaves) {
    this.context = activity;
    inflater = LayoutInflater.from( context );
    this.leaves=leaves;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate( R.layout.myleaves_fragment, parent, false );
    MyHolder viewholder = new MyHolder(view);
    return viewholder;
}

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {

    final MyHolder myHolder = (MyHolder) holder;
    final DataLeaves current = leaves.get( position );

    myHolder.number.setText( current.number );
    myHolder.leavetype.setText( "Type:       "+current.type );
    myHolder.begin.setText( "Leave Begin:    "+current.lbegin );
    myHolder.end.setText( "Leave End:        "+current.lend );
    myHolder.details.setText( "Description:  "+current.ldetails );
    myHolder.stat.setText( "Status:          "+current.lstat );
    myHolder.prime = current.primary;

    myHolder.cancel_btn.setOnClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View view) {
             AlertDialog.Builder alert = new AlertDialog.Builder(context);

                    alert.setTitle( "Delete" );
                    alert.setMessage( "Do you really want to delete it?" );
                    alert.setNegativeButton( "No", null );
                    alert.setPositiveButton( "Yes", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {

                            String primaryid = current.primary;

                            new BackgroundWorker().execute(primaryid);

                        }
                    } );
                    alert.show();
        }
    } );
}

如果你想在按下 'Delete' 后从 recyclerview 中删除当前项目,你可以通过从 'leaves' 数组列表中删除它来轻松完成,

leaves.remove(position);
notifyItemRemoved(position);

但如果您想在片段中触发事件,请在片段中定义一个方法,然后将片段传递给适配器并调用该方法,

或者只需将 buttonClickEvent 从您的适配器移动到片段中的 adapterDefinition,