我正在使用一个适配器,它在ListView的每个项目上都有几个按钮。我有,例如两个按钮。一个用于保存,另一个用于删除。
当我点击它们时,我希望适配器刷新。我的活动有一个方法可以做到这一点:更新适配器。我做了它,因为我无法使适配器的Notify方法工作。
我将Activity作为参数发送到适配器,然后从适配器调用update方法,因为我正在设置适配器中每个按钮的OnClick方法。
问题是它似乎总是起作用。我猜它必须对活动周期和Android清理内存做一些事情,但我似乎无法理解问题出在哪里。
我知道这是一种丑陋的方式,所以最好的方法是什么呢?
总结:当我删除ListView的项目或更新它时,我需要从适配器本身刷新适配器(BaseAdapter)
编辑: 我正在添加一些代码。这是我的适配器的构造函数:
public SpendingPlanAdapter(Context context, SpendingPlan sp, int month, int year, money.activities.SpendingPlan act)
在适配器内部,我有一个OnCLickListener连接到一个按钮。我正在调用这样的更新方法(结果是数据库插入的结果):
if (result){
Toast.makeText(context, context.getResources().getString(R.string.succesfully_deleted), Toast.LENGTH_LONG).show();
act.updateAdapter();
} else {
Toast.makeText(context, context.getResources().getString(R.string.oops), Toast.LENGTH_LONG).show();}
这是我的UpdateAdapter方法:
public void updateAdapter(){
SpendingPlanAdapter adapter = new SpendingPlanAdapter(getApplicationContext(), currentSp, currentMonth, currentYear, this);
limitList.setAdapter(adapter);
}
答案 0 :(得分:0)
您可以像这样致电updateAdapter()
(SpendingPlan (context)).updateAdapter();