У меня есть класс listAdapter
, который я использую для заполнения списков в 3 различных действиях, поэтому я сделал его общедоступным, теперь у списка есть кнопка удаления в представлении listitem
. Не могу найти способ удалить элемент из списка.
listview
заполнены классом asyncTask
, который является частным в каждом действии.
Вот событие нажатия для кнопки, которую я использую:
/*
* set onclick litener for delete button
*/
Button deleteButton = (Button) v.findViewById(R.id.deleteFavoriteStopButton);
//deleteButton.findViewById(R.id.deleteFavoriteStopID);
if(deleteButton != null){
deleteButton.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//get favorite stop id from parent view
String favoriteStopId = ((TextView) ((LinearLayout)v.getParent()).findViewById(R.id.idtext)).getText().toString();
SharedPreferences pref = getContext().getSharedPreferences("favoriteBusStops", 0);
if(pref.contains( favoriteStopId ) ){
pref.edit().remove( favoriteStopId ).commit();
}
}
});
}
и вот мой звонок listadapter
из класса AsyncTask
favoritesList.setAdapter(new StopAdapter(getBaseContext(), R.layout.favoritestoplistitem, stopList));
Раньше я просто перезагружал действие, но так как я делаю вызовы из AsyncTask, я не могу это сделать ...
// редактировать
мой класс не реализовывал onclicklistener
, это сделало все это намного проще:
http://code.google.com/p/myandroidwidgets/source/browse/trunk/Phonebook/src/com/abeanie/PhonebookAdapter.java