android – 使用TweetTimelineListAdapter加载UserTimeline时回调以识别问题
作者:互联网
我正在尝试使用UserTimeline和TweetTimelineListAdapter来获取TimeLine,因为在结构文档中可以找到here.如果我使用我的打开的n / w并且提供了正确的下载速度,我可以正确加载时间轴.我在最初加载时间轴时显示ProgressDialog.
问题:
如果我在办公室的公司办公室,或者我的2G / 3G n / w太慢/间歇性,我不知道如何确定何时真的超时,因此我不确定何时解雇ProgressDialog.
题:
是否有任何回调,它被连接到TweetTimelineListAdapter或类似的东西,以便在尝试加载时间轴时我可以得到任何错误,超时等.
我的方法充其量:
我能够使用DataSetObserver并查看Timeline是否已加载和解除.但是,如果在加载时出现任何错误或超时问题,我无法找到任何内容.
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来获取成功和失败方法的回调.
// 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) {
}
});
但是仅在上面,并没有解决我的问题,因为第一次成功(结果< TimelineResult< Tweet>>结果)被调用了适当的结果,它没有通过通知适配器刷新ListView.为了解决这个问题,我创建了类CustomTimeLineAdapter扩展TweetTimelineListAdapter和重写方法,如getItem,getCount和getView,从上面提到的成功回调内部的ArrayList中获取Tweet.
标签:android,twitter,twitter-fabric 来源: https://codeday.me/bug/20190628/1316085.html