从适配器的活动中调用方法

时间:2011-11-27 22:11:00

标签: android

我正在使用一个适配器,它在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);  
    }

1 个答案:

答案 0 :(得分:0)

您可以像这样致电updateAdapter()

(SpendingPlan (context)).updateAdapter();