我正在處理包含listview的片段(此片段是創建活動時生成的PlaceHolderFragment)。我擴展了ArrayAdapter來製作自定義適配器,並使用此適配器填充我的列表視圖。如何從ArrayAdapter中的onClickListener重新加載活動
一個重要的是在一行listview中,有2個按鈕:第一個是啓用/禁用按鈕來改變用戶的狀態(當用戶的狀態是活動的,然後禁用,否則啓用),第二個是刪除按鈕(刪除用戶)。因此,我必須在適配器的方法getView()中爲此2個按鈕實現OnClickListener。
當單擊其中一個按鈕時,它將向服務器發送請求並操作數據庫(更改用戶狀態或從數據庫中刪除用戶)。當我點擊啓用按鈕(例如),它是成功和數據庫中用戶的狀態改變,或者當我點擊刪除按鈕,用戶將成功從數據庫刪除
但我點擊那個按鈕後,它是狀態不會改變(我的意思是如果用戶被啓用,現在該按鈕必須改變爲禁用,或者如果用戶被刪除,該行必須從屏幕上移除)。我不得不手動重新加載這個片段(切換到其他片段,然後回來)
問題是我該如何重新加載活動(我已經實現onResume加載所有數據到適配器,所以如果我可以使這個方法onResume的片段運行,它會按我的期望工作),或者至少我如何重新加載列表視圖來更新新的數據?
注:notifyDataSetChanged()不起作用,因爲在適配器中的數據實際上沒有改變的是,只有在服務器上的數據被更改
注2:如果你需要我後我的代碼,請評論,我會編輯我的帖子,因爲我認爲我的代碼很長
謝謝,最好的問候!
編輯1 我已爲我的回答下面的解決方案,它解決了問題,但我不得不說,這是在Android中一個非常非常BAD實踐。例如,當您想要使用此方法刪除某個項目時,可能需要爲用戶確認一個AlertDialog,但AlertDialog只能顯示在Activity(或Fragment)中,無法從Adapter中顯示。相反,您應該使用一些不同的方法,如ContextMenu或CustomDialog。
你能分享一下你試過的代碼嗎? – MTahir
@MTahir:謝謝你看看我的問題,但現在我終於找到了我在 –