[英]How can I update the data on my listview using AsyncTask in android?
我是這里的新手,並且已經在網上(和stackoverflow上)搜索了答案,但我仍在努力使其工作。
我想做的是(1)使用異步任務用新的“帖子”更新我的列表-這樣,當我將新帖子下載到他們的android時,允許用戶繼續使用該應用程序。
我正在努力使更新任務正常工作,並且它可能與一個明顯的實現問題有關(或沒有)。
我所擁有的是(1)一個自定義列表(它允許“拉動刷新”-但如上所述,這是一個問題,它此時不刷新任何數據)。 (2)一個自定義的AsyncTask,理論上它將在主屏幕上為主列表填充更多帖子。
這是列表中的問題點:
listView.setOnRefreshListener(new PullToRefreshListView.OnRefreshListener(listView) {
@Override
public void onRefresh() {
mylistAdapter.loadNewData(); //loads new data <-------------------
m_ptrlistView.postDelayed(new Runnable(){
@Override
public void run() {
m_ptrlistView.onRefreshComplete();
}
}, 2000);
////////////這是適配器中的函數“ loadNewData”
public void loadNewData(PullToRefreshListView List){
//load new stuff
new AsyncFetchMore(list).execute();
// MANDATORY: Notify that the data has changed
notifyDataSetChanged();
return;
}
還有...我的asyncTask被擴展的實現
@Override
protected Object doInBackground() {
try {
//simulating a long task
Thread.sleep(5000);
} catch (InterruptedException e) {
Log.d("Notes", "Thread failed to sleep");
}
//create dummy posts for testing
for ( int i = 12; i < 24; i++ ) {
Post pNewPost = new Post();
pNewPost.setText("POST # " + i);
m_alNewPosts.add(pNewPost);
}
return null;
}
///////////////////////////////
也許我正在處理所有錯誤。 我有疑問...但是我只是不知道下一步應該做什么,我在這里很迷路! 你能給我提示嗎?
看起來您沒有用異步任務返回的結果來處理任何事情。 但是在進行修復之前,請考慮使用加載程序-它們是異步的,並且是專門為您的目的而制作的-獲取用於Fragment / Activity的數據。 這是他們的文檔 。 如果您想實現它們,似乎您可能要進行大量的重構,但這很值得-正確的方法。 希望這可以幫助。
您在啟動異步線程(尚未填充數據)后立即調用notifyDataSetChanged()。 數據更新后,調用notifyDataSetChanged()。 在SDK的樣本目錄中查看ApiDemos中的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.