我有一個片段活動,其中包含一個片段,該片段啓動一個Asynctask下載一些數據,我在我的片段實現了一個回調方法,更新適配器和列表視圖中的一些值。我的問題是:這是我的onCreateView方法(重要部分):回調方法參考舊片段
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
list=(PullToRefreshListView)v1.findViewById(R.id.listapull);
adapterList=new ListViewAdapter(secciones, mContext);
}
,當我同時的AsyncTask運行時,doInBackground()方法會繼續運行,然後在後期執行它觸發旋轉設備監聽器,並開始在我的片段回調方法,這種方法有我的適配器和老引用我的列表視圖:
片段及其內容時改變方向時發生,這是正確的,但確實是重建任何人都知道爲什麼回調方法保持引用適配器和列表視圖的方向更改之前創建?
編輯:
我有一個按鈕,執行這樣的的AsyncTask:
asyncRefresh = new PullRefreshTask(taskContext, mContext, secciones);
asyncRefresh.setUpdatePull2RefreshListener(this);
asyncRefresh.execute();
如果用戶按下按鈕的AsyncTask將設置舊片段作爲聽衆,當一個方向變化在asynctask運行時發生,我認爲激活的回調方法是來自新創建的片段方法的方法,但我不再確定。
編輯2:
我已經解決了我的問題,我在我的第一個編輯說,回調方法被稱爲舊片段。所以我所做的就是救我的AsyncTask的變量在名爲「信息」其他類,並在上創建視圖我這樣做:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
list=(PullToRefreshListView)v1.findViewById(R.id.listapull);
adapterList=new ListViewAdapter(secciones, mContext);
PullRefreshTasktask task = Info.getAsyncTask();
asyncRefresh = task;
asyncRefresh.setUpdatePull2RefreshListener(this);
}
這樣,我在我的
設置我的片段的新基準setUpdatePull2RefreshListener()運行的AsyncTask的
方法
由於它來自調試器的屏幕,'adapterList'是你的'Fragment'的內部類的一個實例。這可能是問題嗎? – ernazm