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

标签 android twitter twitter-fabric

我正在尝试使用 UserTimelineTweetTimelineListAdapter 来获取 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得到Callbacksuccessfailure方法。

// 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 , getCountgetView采取Tweet来自 ArrayList填充内部 success上面提到的回调。

关于android - 使用 TweetTimelineListAdapter 加载 UserTimeline 时回调以识别问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429891/

相关文章:

twitter - 获取用户配置文件和时间线时出现 Tweetsharp 问题

android - Expo Eject 后,run-android 错误 : spawnSync gradlew. bat Enoent

java - Dagger 的依赖注入(inject)被忽略,字段保持为空

java - SonarQube 5.6 安卓 Gradle

iOS Twitter+OAuth 检查用户是否登录

javascript - Bitly API - 打开新窗口的 JavaScript 函数

ios - 添加 crashlytics 和 fabric 时出现重复符号链接(symbolic link)器错误

ios - CSYMGenerator 无法打开 XCode 项目运行

android - com.twitter.sdk.android.core.TwitterApiException : 401 Authorization Required

android - 无法解析 : exifinterface