Как удалить элемент, нажав на элемент в течение длительного времени в Recycleview? - PullRequest
0 голосов
/ 18 апреля 2020

Как удалить элемент, нажав на элемент Recycleview в течение длительного времени (возможно, 2 секунды)? И когда вы долго нажимаете на элемент, появляется диалоговое окно: «Вы уверены, что хотите удалить?».

Ответы [ 2 ]

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

Вы можете добавить код ниже в методе onBindViewHolder ..

 holder.itemView.setOnLongClickListener {
val builder = AlertDialog.Builder(this)
        builder.setTitle("Delete")
        builder.setMessage("Are you Sure To Delete?")

        builder.setPositiveButton(android.R.string.yes) { dialog, which ->
            Toast.makeText(applicationContext,
                    android.R.string.yes, Toast.LENGTH_SHORT).show()
        }

        builder.setNegativeButton(android.R.string.no) { dialog, which ->
            Toast.makeText(applicationContext,
                    android.R.string.no, Toast.LENGTH_SHORT).show()
        }

        builder.setNeutralButton("Maybe") { dialog, which ->
            Toast.makeText(applicationContext,
                    "Maybe", Toast.LENGTH_SHORT).show()
        }
        builder.show()
        false
        }
1 голос
/ 18 апреля 2020
Adapter class

    OnLongItemClickListener longClickListener;

    @Override
    public void onBindViewHolder(final DocumentViewHolder viewHolder, int position) {

        ...
        viewHolder.itemView.setLongClickable(true);
        ...
    }

    public void setLongClickListener(OnLongItemClickListener longClickListener) {
       this.longClickListener = longClickListener;
    }

OnLongItemClickListener

interface OnLongItemClickListener{
 void longClick(Item item)
}

После того, как в вашем упражнении / фрагменте реализует OnLongClickListener после вызова adaptor.setLongClickListener (this) в появившемся методе, вызывает alertDialog, когда вы нажимаете кнопку ok, удаляете элемент из списка и позвоните

adapter.notifydatasetchanged()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...