У меня есть следующая проблема:
Я бы хотел изменить значение ячейки ExpandableListView при клике. Как мне это сделать?
Вот что я использую:
public class TemplateActivity extends ExpandableListActivity {
private SimpleExpandableListAdapter expListAdapter = null;
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.template_create);
expListAdapter = new SimpleExpandableListAdapter(
this, createGroupList(),
R.layout.template_create_group_row,
new String[] { KEY_GROUP },
new int[] { R.id.create_template_groupname },
createChildList(),
R.layout.flower_template_create_child_row,
new String[] { KEY_ATTRIBUTE_VALUE },
new int[] { R.id.flowerx_text_attr }
);
setListAdapter(expListAdapter);
}
private List<HashMap<String, String>> createGroupList() {
ArrayList<HashMap<String, String>> result = new ArrayList<HashMap<String, String>>();
for (String entryKey: <ArrayOfGroupTitles>) {
HashMap<String, String> m = new HashMap<String, String>();
m.put(KEY_GROUP, entryKey);
result.add(m);
}
return result;
}
private List<ArrayList<HashMap<String, Object>>> createChildList() {
ArrayList<ArrayList<HashMap<String, Object>>> result = new ArrayList<ArrayList<HashMap<String, Object>>>();
for (String entryKey: fieldsInList.keySet()) {
ArrayList<HashMap<String, Object>> secList = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> attrVal = new HashMap<String, Object>();
attrVal.put(KEY_ATTRIBUTE_VALUE, String.valueOf(fieldsInList.get(entryKey).getFieldValue()));
secList.add(attrVal);
result.add(secList);
}
return result;
}
Приложение находится в стадии разработки, поэтому attrVal будет содержать несколько атрибутов (которые могут быть заданы или не зависеть от некоторой логики), поэтому я использую этот тип адаптера и способ заполнения данных ячеек.
fieldsInList - внешняя переменная типа LinkedHashMap.
У меня есть функция, которая может изменить одну из переменных член fieldsInList.
Как я должен уведомить мой expListAdapter или ExpanableListView об обновлении?