android - removing item from ListView on long click
Solution 1
You shouldn't use Arrays
, you should use ArrayList
to remove and add items to a Listview
.
Once the Array size is declared you can modify the data in particular index but cannot remove the items or add to it.
So Take an ArrayList and just when you long click on the ListView Item, just call remove method of Arraylist and notify the data set changed.
Example:
ArrayList<String> al = new ArrayList<String>();
inside your longclick write the below code to remove item.
al.remove(arg2);//where arg2 is position of item you click
myAdapter.notifyDataSetChanged();
Solution 2
try
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long arg3) {
myAdapter.remove(some_data[position]);
myAdapter.notifyDataSetChanged();
return false;
}
});
Droidman
android enthusiast and developer since around 2011. Passionate user and advocate of kotlin language. I love coding, teamwork, open-source, discovering & trying out new exciting tech. And I am indeed a big fan of the Stargate franchise ;) Currently an Android developer at Thalia Digital Retail Solutions in Berlin, building the Douglas e-commerce app for Parfümerie Douglas.
Updated on February 09, 2022Comments
-
Droidman about 2 years
I'm having some troubles while trying to remove an item from the list view on long click. Below is the code:
public class MListViewActivity extends ListActivity { private ListView lv; private String[] some_data = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); some_data = getResources().getStringArray(R.array.mdata); // Bind resources Array to ListAdapter ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, some_data); this.setListAdapter(myAdapter); lv = getListView(); lv.setDividerHeight(3); lv.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int arg2, long arg3) { // Can't manage to remove an item here return false; } }); }
Any help is appreciated
-
Droidman over 11 yearsthrows an UnsupportedOperationException
-
Clocker about 9 yearsexactly was I was looking for. If you are using a ListView or any subclass of it, use the method above to get the held item from the list
-
coderpc almost 7 yearsI'm having a similar issue. What is
lvStat
here in your code ? -
Borshon saydur rahman almost 7 years@pc listview reference
-
coderpc almost 7 yearsI have
VideoView
,ImageView
andTextView
in my ListView. Its working forImageView
andTextView
but not forVideoView