Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用TweetTimelineListAdapter加载UserTimeline时回调以识别问题_Android_Twitter_Twitter Fabric - Fatal编程技术网

Android 使用TweetTimelineListAdapter加载UserTimeline时回调以识别问题

Android 使用TweetTimelineListAdapter加载UserTimeline时回调以识别问题,android,twitter,twitter-fabric,Android,Twitter,Twitter Fabric,我正在尝试使用UserTimeline和TweetTimelineListAdapter来获取TimeLine,这可以在fabric文档中找到。如果我使用我的开放n/w,并提供适当的下载速度,我能够正确加载时间线。最初加载时间线时,我显示了一个ProgressDialog 问题: 如果我在公司办公室,或者如果我的2G/3G n/w太慢/断断续续,我不确定如何确定它何时真正超时,因此我不确定何时关闭ProgressDialog 问题: 是否有任何回调连接到TweetTimelineListAdap

我正在尝试使用
UserTimeline
TweetTimelineListAdapter
来获取
TimeLine
,这可以在fabric文档中找到。如果我使用我的开放n/w,并提供适当的下载速度,我能够正确加载时间线。最初加载时间线时,我显示了一个
ProgressDialog

问题:

如果我在公司办公室,或者如果我的2G/3G n/w太慢/断断续续,我不确定如何确定它何时真正超时,因此我不确定何时关闭
ProgressDialog

问题:

是否有任何回调连接到
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时间线,同时我的活动是空白的。为了应付延迟,我显示了
ProgressDialog
。但正如上面问题中提到的,我需要知道在哪里取消对话

final UserTimeline userTimeline = new UserTimeline.Builder().screenName(brandScreenName).build();

// create custom TimeLine adapter object
adapter = new TweetTimelineListAdapter(this, userTimeline);
我发现我们可以使用
success
failure
方法调用
UserTimeline
可用的以下API来获得
Callback

// 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) {           
    }
});
//手动触发userTimeline以获取最新推文
userTimeline.previous(null,新回调(){
@凌驾
公开作废成功(结果){
}
@凌驾
公共无效失败(TwitterException异常){
}
});

但仅上述内容并没有解决我的问题,因为第一次调用
success(Result-Result)
时结果正确,它没有通过通知
适配器来刷新
ListView
。为了解决这个问题,我创建了
类CustomTimeLineAdapter扩展了TweetTimelineListAdapter
,并重写了方法,如
getItem
getCount
getView
从上面提到的
ArrayList
内部填充
success
回调中获取
Tweet

我也有同样的问题,请将您的代码发送给我或编辑到此处。请在找到相关代码,如果您需要其他帮助,请告诉我如何使用它,我不明白这对我接受回访有什么帮助