我有一個從Twitter加載推文的AsyncTask。 我也有一個PullToRefresh ListView ...每當我拉它來刷新它,列表視圖立即清除,並且一旦數據已被加載,它將被填充到列表視圖中。在AsyncTask完成之前獲得清單
我在我的應用程序中的其他ListView都具有相同的東西(PullToRefresh和異步數據加載...)。在其他ListViews這不會發生。只在Twitter ListView上。我究竟做錯了什麼?
這裏是我的代碼:
public class TwitterDownloader extends AsyncTask<Void, Void, String> {
final Handler mHandler = new Handler();
public TwitterDownloader() {
}
@Override
public void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(Void... params) {
twitter4j.Twitter twitter = new TwitterFactory().getInstance();
listTweets.clear();
List<twitter4j.Status> statuses = null;
try {
statuses = twitter.getUserTimeline(
MainActivity.TWITTER_USERNAME, new Paging(1, 50));
} catch (TwitterException e) {
e.printStackTrace();
Log.e(MainActivity.LOG_TAG, "TwitterException");
}
try {
for (twitter4j.Status status : statuses) {
listTweets.add(status.getText());
}
} catch (NullPointerException npe) {
}
return null;
}
@Override
public void onPostExecute(String unused) {
MyCustomAdapter myAdapter = new MyCustomAdapter(myContext,
R.layout.row_twitter, listTweets);
setListAdapter(myAdapter);
getListView().setTextFilterEnabled(true);
String lastUpdate = (new SimpleDateFormat(
"HH:mm")).format(new Date());
pullToRefreshView.onRefreshComplete();
pullToRefreshView.setLastUpdatedLabel(getString(R.string.last_updated) + ": "
+ lastUpdate);
}
嘗試通知適配器改變。 – 2012-08-06 10:36:07
我到底該怎麼做?我需要在哪裏添加它?究竟如何? – user754730 2012-08-06 10:43:16
將myAdapter.notifyDataSetChanged()放入onPostExcute();如果它不起作用,請顯示您的logcat(應該打印NullPointerException的堆棧跟蹤) – R4j 2012-08-06 10:55:09