La liste ne serait pas récupérée à partir de la base de données. Il est passé d'une autre classe.Comment supprimer un listitem d'une liste?
0
A
Répondre
3
Vous ne "supprimez pas un listitem d'une liste". Vous modifiez les données détenues par le ListAdapter
qui prend en charge le ListView
. Si l'adaptateur est un ArrayAdapter
, appelez le remove()
sur le ArrayAdapter
. Si l'adaptateur est un CursorAdapter
, supprimez l'élément de la base de données et requery()
le Cursor
. Etc.
+0
Pourriez-vous donner un exemple de code? – User358218
0
mieux si vous utilisez un SimpleAdapter qui prend une ArrayList.Then vous mettez à jour votre liste en supprimant ce que vous voulez supprimer simplement appeler adapter.notifyDataSetChanged() & comme:.
static final ArrayList<HashMap<String,String>> list =new ArrayList<HashMap<String,String>>();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newentrypagelayout);
//create base adapter for listview
adapter= new SimpleAdapter(
this,
list,
R.layout.custom_list_row,
new String[] {"pen","price","color"},
new int[] {R.id.text1,R.id.text2, R.id.text3}
);
populateList();
setListAdapter(adapter);
}
public void populateList()
{
sHashMap<String,String> temp = new HashMap<String,String>();
temp.put("pen","MONT Blanc");
temp.put("price", "200.00$");
temp.put("color", "Silver, Grey, Black");
list.add(temp);
HashMap<String,String> temp1 = new HashMap<String,String>();
temp1.put("pen","Gucci");
temp1.put("price", "300.00$");
temp1.put("color", "Gold, Red");
list.add(temp1);
HashMap<String,String> temp2 = new HashMap<String,String>();
temp2.put("pen","Parker");
temp2.put("price", "400.00$");
temp2.put("color", "Gold, Blue");
list.add(temp2);
HashMap<String,String> temp3 = new HashMap<String,String>();
temp3.put("pen","Sailor");
temp3.put("price", "500.00$");
temp3.put("color", "Silver");
list.add(temp3);
HashMap<String,String> temp4 = new HashMap<String,String>();
temp4.put("pen","Porsche Design");
temp4.put("price", "600.00$");
temp4.put("color", "Silver, Grey, Red");
list.add(temp4);
}
now if you need to delete an item.Get the selected index(the item that has been selected) remove it from the array list & call the method I told before.Like:
public void itemDeleteButtonClicked(View v)
{
int index=itemsListView.getSelectedItemPosition();
list.remove(index);
adapter.notifyDataSetChanged();
}
S'il vous plaît votre question Elaborer? – Praveen
lView.setAdapter (nouvel ArrayAdapter (this, android.R.layout.simple_list_item_multiple_choice, lvItems)); \t \t \t \t \t lView.setChoiceMode (ListView.CHOICE_MODE_SINGLE) Mon tableau d'éléments de liste: lvItems de private String [] = { "Pay-As-You-Roam", "Roaming international"}; Public vide remove() { pos = lView.getCheckedItemPosition(); si (pos == 0) { \t/* RETIRER ARTICLE * /}} –
User358218
J'espère retirer ce point particulier lorsque [if (pos == 0)] pos = lView.getCheckedItemPosition() ; – User358218