Как удалить предметы из утилиты - PullRequest
0 голосов
/ 14 апреля 2020

Как я могу удалить элемент из адаптера представления переработчика. Я беру предметы из API и храню их в адаптере. Я использую следующий код для удаления элемента в базе данных mysql, но не могу удалить элемент из перечня утилит

@Override
    public void onBindViewHolder(MyViewHolder holder, int position) {

        holder.ordTxt.setText("Order No : "+mData.get(position).getOrderNumber());
        holder.ordCharges.setText("Rs: "+mData.get(position).getOrderCharges());

        orderNo = mData.get(position).getOrderNumber();


        holder.detBtn.setOnClickListener(v -> {
            Intent in_cat = new Intent(ctx,OrderDetail.class);
            in_cat.putExtra("user_id", preferenceHelper.getId());
            in_cat.putExtra("ordNo", mData.get(position).getOrderNumber());
            ctx.startActivity(in_cat);
        });

        holder.canBtn.setOnClickListener(v -> {
            cancelConfirmation();

        });


    }

call.enqueue(new Callback<String>() {
                @Override
                public void onResponse(Call<String> call, Response<String> response) {
                    //Log.i("Responsestring", response.body().toString());
                    //Toast.makeText(ctx, "Response Got", Toast.LENGTH_SHORT).show();
                    if (response.isSuccessful()) {
                        if (response.body() != null) {

                            progressDialog.dismiss();

                            Log.i("onSuccess", response.body());

                            //deleteItem(mData.get(position));

                            String jsonresponse = response.body();
                            Toast.makeText(ctx,jsonresponse,Toast.LENGTH_LONG).show();

                            //success message for cancelling order to be set here

                            //JSONObject obj = new JSONObject(jsonresponse);
                            //if(obj.optString("status").equals("true")){


                            //parseLoginData(jsonresponse);

                        } else {

                            progressDialog.dismiss();

                            Log.i("onEmptyResponse", "Returned empty response");
                            //Toast.makeText(ctx,"Empty Response",Toast.LENGTH_LONG).show();
                        }
                    }
                }

                @Override
                public void onFailure(Call<String> call, Throwable t) {
                    progressDialog.dismiss();
                    Toast.makeText(ctx,"Please connect your internet",Toast.LENGTH_LONG).show();

                }
            });

Я использую модификацию для вызова API и удаления элементов в mysql, как я могу получить позицию выбранного элемента и удалить ее из окна повторного использования в сообщении об успехе от API

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Попробуйте, это сработает notifyItemRemoved(position)

  holder.canBtn.setOnClickListener(v -> {
        cancelConfirmation(position);
    });

Затем передайте в качестве параметра текущей позиции, как показано ниже cancelConfirmation(int position) и, наконец, когда ответ успешен, удалите элемент, как показано ниже

     if (response.isSuccessful()) {
         mData.remove(position)
         notifyItemRemoved(position);
     }

Взгляните на официальную документацию

0 голосов
/ 14 апреля 2020

kotlin версия:

private fun deleteItem(position: Int) {
    mDataSet.removeAt(position)
    notifyItemRemoved(position)
    notifyItemRangeChanged(position, mDataSet.size)
}
...