2010-08-25 17 views
0

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

S'il vous plaît votre question Elaborer? – Praveen

+0

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

+0

J'espère retirer ce point particulier lorsque [if (pos == 0)] pos = lView.getCheckedItemPosition() ; – User358218

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(); 

    }