其他分享
首页 > 其他分享> > android – 使用TweetTimelineListAdapter加载UserTimeline时回调以识别问题

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