我正在尝试使用 UserTimeline
和 TweetTimelineListAdapter
来获取 TimeLine
可以找到 here在织物文档中。如果我使用我的 open n/w 并提供适当的下载速度,我能够正确加载时间轴。当最初加载时间线时,我正在显示 ProgressDialog
。
问题:
如果我在办公室的公司 n/w 或如果我的 2G/3G n/w 太慢/间歇性,我不确定如何确定它何时真正超时,因此我不确定何时解散进度对话框
。
问题:
是否有任何回调,连接到 TweetTimelineListAdapter
或类似的东西,以便我可以在尝试加载时间线时了解是否有任何错误、超时等。
我的最佳方法:
我可以使用 DataSetObserver
并查看时间轴是否已加载和关闭。但是,如果加载时出现任何错误或超时问题,我找不到任何提示。
adapter.registerDataSetObserver(mTwitterDatasetObsv);
DataSetObserver mTwitterDatasetObsv = new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
// dismiss progress dialog
}
@Override
public void onInvalidated() {
super.onInvalidated();
// dismiss progress dialog
}
};
如果我需要提供更多信息,请告诉我。
最佳答案
所以我终于自己弄明白了,并回答了我自己的问题,以防有人感兴趣。
我最初依赖于以下代码行,其中有一些抽象时间来加载 Twitter 时间线,同时我的 Activity 是空白的。为了应付延迟,我展示了ProgressDialog
.但正如上面提到的问题,我需要知道在哪里关闭对话框。
final UserTimeline userTimeline = new UserTimeline.Builder().screenName(brandScreenName).build();
// create custom TimeLine adapter object
adapter = new TweetTimelineListAdapter(this, userTimeline);
我发现我们实际上可以调用以下可用于 UserTimeline
的 API得到Callback
与 success
和 failure
方法。
// trigger userTimeline manually to get latest tweets
userTimeline.previous(null, new Callback<TimelineResult<Tweet>>() {
@Override
public void success(Result<TimelineResult<Tweet>> result) {
}
@Override
public void failure(TwitterException exception) {
}
});
但仅凭以上,并没有像第一次那样解决我的问题success(Result<TimelineResult<Tweet>> result)
被调用并得到了正确的结果,它没有刷新 ListView
通过通知 adapter
.为了解决这个问题,我创建了 class CustomTimeLineAdapter extends TweetTimelineListAdapter
和覆盖的方法,例如 getItem
, getCount
和 getView
采取Tweet
来自 ArrayList
填充内部 success
上面提到的回调。
关于android - 使用 TweetTimelineListAdapter 加载 UserTimeline 时回调以识别问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429891/