2017-06-21 54 views
3

我想使用rest API删除RecyclerView项目。我在AdapterClass中使用Volley。当用户单击删除TextView时,RecyclerView项目应该使用Volley删除。如何使用Rest API删除RecyclerView项目?

这是代码。

enter image description here}

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

      } 
     }); 

} 

    } 
} 
+0

使用Volley删除?您正在进行API调用。对?那么在成功时只需要调用你的删除方法。 –

+0

你的意思是什么? – jagapathi

+0

@Kishan Vaghela.Yes删除使用Volley.Yes我正在进行API调用。如何使用删除方法?你可以发布代码吗? – rakesh

回答

1

好孤单两件事情你必须做实现这一目标。

  1. 使用volley调用您的DELETE API。 Delete Request With header and Parametes Volley继承人很好的例子如何做到这一点。

  2. 然后从ArrayList中删除项目,然后相应地更新适配器。

0

只需拨打您的删除方法响应

public void delete(int position) { //removes the row 
    vehicleArrayList.remove(position); 
    notifyItemRemoved(position); 
} 

@Override 
public void onResponse(JSONObject response) { 
     Log.d(TAG, response.toString()); 
     pDialog.hide(); 
     delete(getAdapterPosition()); 
} 
相关问题