我知道這個問題是舊的,但我不得不這樣做同樣的事情,我想我會與大家分享的解決方案或任何需要它。
首先,您確實需要使用AsyncTask
來檢索您的數據。這就是說,我絕不會讓AsyncTask以任何方式操作我的視圖類。相反,我寧願使用一個回調與您的AsyncTask中需要的參數一起傳遞。一旦AsyncTask完成,您將調用您的回調方法,該方法將負責調用notifyDataSetChanged()
。
下面是一些代碼:
MyAsyncTask.java
public class MyAsyncTask extends AsyncTask<Object, Void, Object> {
@Override
protected String doInBackground(Object... params) {
MyController callbackClass = (MyController) params[0];
// Get your other parameters and do your stuff here...
// Call the setter with the data you get back and refresh the view
// either here or implementing onPostExecute.
callbackClass.setMyData(myData);
callbackClass.refreshView();
// Return any object if you need.
return null;
}
}
MyCallbackClass.java
public MyCallbackClass extends Fragment{
private List<MyDataType> myData;
private ArrayAdapter<MyDataType> myAdapter;
// Your methods including setters and getters.
public void refreshFriendList(){
if(myAdapter == null){
initAutoCompleteView();
}
myAdapter.clear();
myAdapter.addAll(myData);
myAdapter.notifyDataSetChanged();
}
}
你有任何解決方案 – user1767260 2013-09-30 10:03:17
@ user1767260,它已經兩年多了我發佈了這些問題;我不認爲我追求這一點。 – rajath 2013-09-30 10:50:12