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?
Répondre
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.
Pourriez-vous donner un exemple de code? – User358218
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