【发布时间】:2021-03-03 01:58:16
【问题描述】:
我有以下问题:
我已经实现了一个 ExpandableListView,它显示了来自数据库的一系列记录。每个项目旁边都有一个用于删除该项目的按钮。
我的问题是从 ExpandableList 中删除项目的方法工作正常,但我希望它在完成删除后刷新 ExpandableList 并再次向我显示没有该项目的记录。
这是我的适配器方法:
public class BaseExpandableListViasAdapterde extends BaseExpandableListAdapter {
(...)
public BaseExpandableListViasAdapterde(ArrayList<String> listCategoria, Map<String, ArrayList<String>> mapChild, Map<String, ArrayList<String>> mapChildNomVias, Context context) {
this.listCategoria = listCategoria;
this.mapChild = mapChild;
this.mapChildNomVias = mapChildNomVias;
this.context = context;
}
(...)
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, final ViewGroup parent) {
final String itemCod = (String)getChild(groupPosition, childPosition);
final String itemNom = (String)getChild2(groupPosition, childPosition);
convertView = LayoutInflater.from(context).inflate(R.layout.filter_child_layout_vias, null);
TextView tvChildCodigoVia = convertView.findViewById(R.id.txtViasCod);
TextView tvChildNombreVia = convertView.findViewById(R.id.txtViasnombre);
ImageView buttonTrash= convertView.findViewById(R.id.imgBorrarVia);
buttonTrash.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String codVia = (String) getChild(groupPosition, childPosition);
borraViasBD(codVia); //This method delete the item in the database. Works fine.
//Try this, but don't work
listCategoria.remove(groupPosition);
notifyDataSetChanged();
}
});
tvChildCodigoVia.setText(itemCod);
tvChildNombreVia.setText(itemNom);
return convertView;
}
(...)
}
知道如何刷新 ExpandableList 吗? 谢谢你!
【问题讨论】:
-
您确定要删除带有
listCategoria.remove(groupPosition);的正确列表项吗?尝试拨打listCategoria.remove(codVia) -
谢谢,我也试过了,但它似乎不起作用。我尝试删除地图,ArrayList ...但对我没有任何作用:(
标签: android adapter expandablelistview