【问题标题】:how to delete cardview in a recycler view and its json data如何删除回收站视图中的卡片视图及其 json 数据
【发布时间】:2019-07-02 08:22:52
【问题描述】:

我想在选择它之后删除RecyclerView 中的卡片。RecyclerView 中的数据是 JSON 数据

public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
                if(response.isSuccessful()) {

                    JsonObject responseObject = response.body();
                    if (responseObject.has("data")) {
                        JsonArray arrayobject = responseObject.getAsJsonArray("data");
                        ArrayList<User_Details_Model> myorder = getGeneral(arrayobject.toString());
                        viewRequestControllerCallback.hitsuccess1(myorder);

【问题讨论】:

  • 你好,@Shaheer Kp 你想在选择后从列表回收器视图中删除一条记录,对吧?
  • 你的问题解决了吗?

标签: java android json android-recyclerview retrofit2


【解决方案1】:

这是适配器

public void onBindViewHolder(@NonNull final UserViewHolder holder, final int 
position) {
  final User_Details_Model product = user_details.get(position);

  Log.d("######",user_details.toString());
  holder.tv1.setText(product.getDriverId());
  holder.tv2.setText(product.getDriverName());
  holder.tv3.setText(product.getVehicleId());
  holder.tv4.setText(product.getVehicleType());
  holder.tv5.setText(product.getOilType());

 holder.button_ok.setOnClickListener(new View.OnClickListener() {

 @Override public void onClick(View v) {
    int pos=holder.getAdapterPosition();
    if (position==pos){
      getdetails();
      user_details.remove(pos);

     }
   }
 }

【讨论】:

    【解决方案2】:

    这是检测点击了哪个cardView的好资源。单击cardView后,您可以将其删除:

    Recyclerview-listener

    public interface OnItemClickListener {
        void onItemClick(ContentItem item);
    }
    
    public void bind(final ContentItem item, final OnItemClickListener listener) {
        ...
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View v) {
                listener.onItemClick(item);
            }
        });
    }
    

    【讨论】:

    • 会从List获取item然后删除,然后调用notifydatasetchanged()
    • 您必须使用适配器和内部覆盖方法在您的类中实现一个接口,您刚刚获得了选定的项目,并且从该项目中,您只需从某个位置删除该选定的项目。跨度>
    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多