2

I want to delete items on a listView when longpressed. In this code you can add (with edittext) a list item with Button, as you can see below.

I have been unable to write the code for deleting them with a long press. What should I do?

Ideally, a long press will bring up a menu and user can touch and delete the section they want.

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); addButton = (Button) findViewById(R.id.addButton); listView = (ListView) findViewById(R.id.listView); listItems = new ArrayList<String>(); listItems.add("First Item - added on Activity Create"); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems); listView.setAdapter(adapter); addButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { listItems.add(editText.getText().toString()); adapter.notifyDataSetChanged(); } }); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int position, long id) { Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_LONG) .show(); } }); } 

3 Answers 3

4

Try this one :

listView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long arg3) { adapter.remove(data[position]);//position of the item you click adapter.notifyDataSetChanged(); return false; } }); 
Sign up to request clarification or add additional context in comments.

Comments

0

You can do it with animation:

listView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long arg3) { adapter.remove(data[position]);//position of the item you click adapter.notifyItemRemoved(position); return false; } }); 

Comments

0

Use this for listview item delete on long click and it should be display alert dialog when you delete any item from list view

listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { removeItemFromList(position); return true; } private void removeItemFromList(int position) { final int deletePosition = position; AlertDialog.Builder alert = new AlertDialog.Builder( 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 songsList.remove(deletePosition); songAdapter.notifyDataSetChanged(); songAdapter.notifyDataSetInvalidated(); } }); alert.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); } }); alert.show(); } 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.