0
我正在使用一個適配器,它在ListView的每個項目上都有幾個按鈕。我有,例如兩個按鈕。一個用於保存,另一個用於刪除。從適配器的活動調用方法
當我點擊它們時,我想刷新適配器。我有一個方法在我的活動上做到這一點:更新適配器。我做了它,因爲我無法使適配器的通知方法工作。
我將活動作爲參數發送到適配器,然後從適配器調用更新方法,因爲我正在設置適配器中每個按鈕的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);
}
最好的方法仍然是調用notify *方法。您能否顯示您的代碼,以便有人可以看到調用它們的問題。 –
我添加了一些可能有助於理解問題的代碼。調用適配器內部的notify *方法似乎什麼也不做,儘管每個適配器都會發生這種情況。通常我只是創建一個新的並將其重新分配給視圖。 – sfratini
你確定你的OnClick()適配器的數據會改變嗎?例如,您可能需要記錄適配器的getCount(),以確保您的適配器確實看到最近添加的數據。 –