Я использую ExpandableListActivity
Я использую
SimpleExpandableListAdapter(Context context, List<? extends Map<String, ?>> groupData, int groupLayout, String[] groupFrom, int[] groupTo, List<? extends List<? extends Map<String, ?>>> childData, int childLayout, String[] childFrom, int[] childTo);
для своей деятельности.Здесь я создал контекстное меню.Используя контекстное меню, я удаляю значение из базы данных, а также формирую ArrayList
из Child Group
.У меня проблема в том, что я хочу обновить свою ChildView
Расширяемую активность списка сразу после удаления значений из DataBase
и ArrayList.
. Я попытался использовать notifyDataSetChanged()
.Это не работает, потому что я не удаляю значение из самого ExpandableListAdapter.Я также попытался снова вызвать Adapter после удаления значений, но он дает два списка.
// here on select ContextMenu
@Override
public boolean onContextItemSelected(MenuItem item) {
ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item
.getMenuInfo();
// Getting positions of Group and child from Expandable ListView
int groupPos = 0, childPos = 0;
int type = ExpandableListView
.getPackedPositionType(info.packedPosition);
if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
groupPos = ExpandableListView
.getPackedPositionGroup(info.packedPosition);
childPos = ExpandableListView
.getPackedPositionChild(info.packedPosition);
}
db.openConnection(this);
View v = info.targetView;
TextView tv = (TextView) v.findViewById(R.id.grp_child);
String string = (String) tv.getText();
// Here I delete the value from DataBase onClik of Context Menu.
if (item.getItemId() == 0) {
final String where = "title=?";
final String[] args = new String[] { string };
database.delete(tableData, where, args);
}
// Here I delete the value from ArrayList onClik of Context Menu.
//result1 is ArrayList<ArrayList<HashMap<String,String>>>();
result1.get(groupPos).get(childPos);
result1.remove(result1.get(groupPos).get(childPos));
Log.e("Search", "is" + result1.get(groupPos).get(childPos));
/*expListAdapter.notifyDataSetChanged();*/
db.closeConnection();
return super.onContextItemSelected(item);
// when i delete form both arraylist and database i want to update //ListView immidiately.
}
Любая помощь будет оценена.
Заранее спасибо ..
Махавир