2010-08-25 5 views
0

Listitem не будет извлекаться из db. Он передается из другого класса.Как я могу удалить listitem из списка?

+0

Пожалуйста Выработать свой вопрос? – Praveen

+0

lView.setAdapter (новый ArrayAdapter (это, android.R.layout.simple_list_item_multiple_choice, lvItems)); \t \t \t \t \t lView.setChoiceMode (ListView.CHOICE_MODE_SINGLE) Моего массив элементов списка: частный Струнный lvItems [] = { "Pay-As-You-Roam", "Международный роуминг"}; public void remove() { pos = lView.getCheckedItemPosition(); , если (поз == 0) { \t/* удалить элемент * /}} – User358218

+0

Я в надежде удалить этот конкретный элемент, когда [если (поз == 0)] поз = lView.getCheckedItemPosition() ; – User358218

ответ

3

Вы не «удаляете список из списка». Вы изменяете данные, хранящиеся в ListAdapter, которые поддерживают ListView. Если адаптер является ArrayAdapter, позвоните по телефону remove() по телефону ArrayAdapter. Если адаптер является CursorAdapter, удалите элемент из базы данных и requery()Cursor. И так далее.

+0

Не могли бы вы привести пример кода? – User358218

0

Лучше, если вы используете SimpleAdapter который принимает ArrayList.Then вы обновляете свой список, удаляя то, что вы хотите удалить & просто позвоните adapter.notifyDataSetChanged() как:.

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

    } 
Смежные вопросы