I want to delete the RecyclerView item using rest API. I am using Volley in AdapterClass.When user click on delete TextView ,the RecyclerView item should delete using Volley.
Here is code.
}
VechileAdapter.java
public class VechileAdapter extends RecyclerView.Adapter<VechileAdapter.MyViewHolder> {
private Context mContext;
public LayoutInflater inflater;
List<VehicleResponse.VehicleDataBean> vehicleArrayList;
VehicleResponse.VehicleDataBean current;
public static final String TAG = AppController.class.getSimpleName();
public VechileAdapter(VehicleActivity context, List<VehicleResponse.VehicleDataBean> vehiclelist) {
inflater = LayoutInflater.from(context);
this.mContext = context;
this.vehicleArrayList=vehiclelist;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout. vechile_card, parent, false);
return new MyViewHolder(itemView);
}
public void delete(int position) { //removes the row
// vehicleArrayList.remove(position);
// notifyItemRemoved(position);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
current= vehicleArrayList.get(position);
holder.brandnames.setText(current.getVehicle_brand());
holder.modelnames.setText(current.getVehicle_model());
holder.vehicleno.setText(current.getVehicle_number());
@Override
public int getItemCount() {
return vehicleArrayList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView brandnames, modelnames, vehicleno, Edit, Delete_vehicle, ;
public ImageView brandimgs;
public MyViewHolder(View view) {
super(view);
brandnames = (TextView) view.findViewById(R.id.brand_names);
modelnames = (TextView) view.findViewById(R.id.model_names);
vehicleno = (TextView) view.findViewById(R.id.tv_vehicleno);
brandimgs = (ImageView) view.findViewById(R.id.brand_imgs);
Edit = (TextView) view.findViewById(R.id.edit);
Delete_vehicle = (TextView) view.findViewById(R.id.tv_delete_vehicle);
Delete_vehicle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tag="tag_json_obj";
String url="...";
final ProgressDialog pDialog= new ProgressDialog(mContext);
pDialog.setMessage("Loading");
pDialog.show();
JsonObjectRequest jsonObjReq= new JsonObjectRequest(Request.Method.POST,url,null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
pDialog.hide();
}
}
,new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error:" + error.getMessage());
pDialog.hide();
}
})
{
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("id", current.getId());
params.put("user_id", current.getUser_id());
return params;
}
};
AppController.getInstance().addToRequestQueue(jsonObjReq, tag);
}
});
}
}
}
Ok theres 2 things you have to do to achieve this.
call your DELETE API using volley. Delete Request With header and Parametes Volley heres good example how to do it.
Then remove the item from your ArrayList then update adapter accordingly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With