Удалить элемент при длинном клике - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу удалить элемент из списка. OnsetOnItemLongClickListener.i вызвал метод agetAssetData из класса базы данных, добавил его в список и вызвал этот метод удаления в методе create, но при нажатии элемента в списке не отображается ни одна опция для удаления, как упомянуто в мой код.

    dataModelAssetDataArrayList =
            new ArrayList <>(databaseAssetData.getAssetData());

    dataAdapterAssetData = new DataAdapterAssetData(this, dataModelAssetDataArrayList);

public void DeleteItem(){

    listViewAssetData.setAdapter(dataAdapterAssetData);

    listViewAssetData.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        // setting onItemLongClickListener and passing the position to the function
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                                       int position, long arg3) {
            removeItemFromList(position);

            return true;
        }


        // method to remove list item
        protected void removeItemFromList(int position) {
            final int deletePosition = position;

            AlertDialog.Builder alert = new AlertDialog.Builder(
                    EditViewAssetDataActivity.this);

            alert.setTitle("Delete");
            alert.setMessage("Do you want delete this item?");
            alert.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TOD O Auto-generated method stub

                    // main code on after clicking yes
                    list.remove(deletePosition);
                    dataAdapterAssetData.notifyDataSetChanged();
                    dataAdapterAssetData.notifyDataSetInvalidated();

                }
            });
            alert.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    dialog.dismiss();
                }
            });
            alert.show();
        }

    });
}

1 Ответ

0 голосов
/ 29 апреля 2019
  list.remove(deletePosition);    
  dataModelAssetDataArrayList.remove(deletePosition); //Must remove before notifyDataSetChanged
  dataAdapterAssetData.notifyDataSetChanged();
...