我有一個ViewPager,我填充了具有listview內部的片段。關鍵是我必須展示大量的數據,而且我需要製作頁面,所以我只需要少量的數據。頁面更改時更改片段內容,ViewPager
我的問題是,我需要調用一個asynctask來檢索頁面更改時的數據,並填充此頁面的列表視圖,我該怎麼做?我該如何更改該任務的onPostExecute中的listview?
PS:我已經使用了一個eclipse模板的標籤+滑動活動,所以即時通訊不張貼我的代碼。
我有一個ViewPager,我填充了具有listview內部的片段。關鍵是我必須展示大量的數據,而且我需要製作頁面,所以我只需要少量的數據。頁面更改時更改片段內容,ViewPager
我的問題是,我需要調用一個asynctask來檢索頁面更改時的數據,並填充此頁面的列表視圖,我該怎麼做?我該如何更改該任務的onPostExecute中的listview?
PS:我已經使用了一個eclipse模板的標籤+滑動活動,所以即時通訊不張貼我的代碼。
我不確定自己的問題是否正確,但我想到的第一件事是我將使用AsyncTaskLoader而不是簡單的AsyncTask。從我的(有限)經驗來看,當涉及到碎片/活動生命週期/配置更改時,裝載機可以解決問題批次。
Loaders guide (Android Developers)
不管你使用什麼方法來獲取數據,加載頁面A的數據後改變B頁面列表視圖的內容不應該是太大的問題:你有充足從簡單地將頁面B的數據保存到活動中(然後將頁面更改爲setCurrentItem,並將頁面更改事件攔截到setOnPageChangeListener), 轉換爲採用SQLite數據庫的更優雅的方法(btw允許您執行一些操作緩存結果,如果可能的話)。
哦,讓我們不要忘記,如果你使用的是抽象類的實現FragmentPagerAdapter你也許可以直接從一個頁面傳遞數據給對方,因爲這PagerAdapter實施
代表每一頁作爲片段,只要用戶可以返回頁面,片段就會一直保存在片段管理器中。
(只使用getItem(int)得到你需要的頁面的引用。我從來沒有嘗試過這個自己,雖然)。
希望這有助於
編輯我剛剛發現,讓在ViewPager顯示的當前片段的引用,如果你不使用FragmentPagerAdapter是棘手:如果這是你的問題的根源,信息它是如何做到可以在這裏找到:
Update data in ListFragment as part of ViewPager
AsyncTask(Activity)和碎片之間的通信是你的問題? –
是的,這是我的問題。 – Edgar