在Android应用程序中使用Fabric Twitter Kit加载用户时间线时无法设置回调



我使用Fabric Twitter Kit来加载用户时间表。然而,我不能使回调正常工作。我遵循官方示例,但仍然没有调用我的successfailure方法。

下面是我的完整代码:
public class TwitterFragment extends ListFragment {

    final Callback<Tweet> callback = new Callback<Tweet>() {
        @Override
        public void success(Result<Tweet> result) {
            setListShown(true);
            Toast.makeText(getActivity(), "NotFail", Toast.LENGTH_LONG).show();
        }
        @Override
        public void failure(TwitterException e) {
            Toast.makeText(getActivity(), "Fail", Toast.LENGTH_LONG).show();
        }
    };
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        startWork();
    }
    public void startWork() {
        final UserTimeline userTimeline = new UserTimeline.Builder().screenName(Config.TWITTER_ACCOUNT).build();
        final TweetTimelineListAdapter adapter = new TweetTimelineListAdapter.Builder(getActivity())
                .setOnActionCallback(callback).setTimeline(userTimeline).setViewStyle(R.style.tw__TweetDarkStyle).build();
        setListAdapter(adapter);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.twitter_layout, container, false);
    }
}

有什么好主意吗?

最后弄明白了。

Callback的类型需要为"timelinerresult"。你的代码应该像这样:

final Callback<TimelineResult<Tweet>> callback = new Callback<TimelineResult<Tweet>>() {
        @Override
        public void success(Result<TimelineResult<Tweet>> result) {
            Log.d("TAG", "success");
            progressDialog.dismiss();
        }
        @Override
        public void failure(TwitterException e) {
            Log.d("TAG", "Failure");
            progressDialog.dismiss();
            Toast.makeText(getActivity(), "Error", Toast.LENGTH_LONG).show();
        }
    };
    adapter = new TweetTimelineListAdapter.Builder(getActivity()).setTimeline(userTimeline).build();
    userTimeline.next(null, callback);

你只需要调用

//for the first time
userTimeline.next(null, callback);

之后,您可以将最后一条推文Id作为第一个参数来获取最后一条推文Id之后的推文。

你没有加载任何tweet,就这样。

最新更新