2

如何在android studio中使用fabric获取特定用户的时间线并在线性视图中预览他们的推文。有一个教程,但它用于某些 id。

public class TweetListActivity extends ListActivity {
    List<Long> tweetIds = Arrays.asList(503435417459249153L,
            510908133917487104L,
            473514864153870337L,
            477788140900347904L);



    final TweetViewFetchAdapter adapter =
            new TweetViewFetchAdapter<CompactTweetView>(
                    TweetListActivity.this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tweet_list);
        setListAdapter(adapter);
        adapter.setTweetIds(tweetIds,
                new LoadCallback<List<Tweet>>() {
                    @Override
                    public void success(List<Tweet> tweets) {
                        // my custom actions
                    }

                    @Override
                    public void failure(TwitterException exception) {
                        // Toast.makeText(...).show();
                    }
                });
    }
}
4

2 回答 2

3

Twitter Kit 1.4.0 支持时间线:

UserTimeline userTimeline = new UserTimeline.Builder().screenName("fabric").build();

--

import com.twitter.sdk.android.tweetui.TweetTimelineListAdapter;
import com.twitter.sdk.android.tweetui.UserTimeline;

public class TimelineActivity extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.timeline);

        final UserTimeline userTimeline = new UserTimeline.Builder()
            .screenName("fabric")
            .build();
        final TweetTimelineListAdapter adapter = new TweetTimelineListAdapter(this, userTimeline);
        setListAdapter(adapter);
    }
}

--

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView android:id="@id/android:empty"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:gravity="center_horizontal|center_vertical"
              android:text="@string/timeline_empty"/>

    <ListView android:id="@id/android:list"
              android:layout_width="match_parent"
              android:layout_height="0dp"
              android:layout_weight="1"
              android:divider="@color/divider_gray"
              android:dividerHeight="@dimen/divider_height"
              android:drawSelectorOnTop="false"/>
</LinearLayout>
于 2015-04-17T18:26:38.937 回答
0

有很多方法可以做到这一点,但首先你需要创建一个 AppSession(登录按钮......)然后搜索用户(在我的示例中是“Almounir”),这是我的应用程序中的代码:

private static final String SEARCH_QUERY = "Almounir";
private static final String SEARCH_RESULT_TYPE = "recent";
private static final int SEARCH_COUNT = 20;
private long maxId;

private void loadTweets() {


final SearchService service = Twitter.getApiClient().getSearchService();
service.tweets(SEARCH_QUERY, null, null, null, SEARCH_RESULT_TYPE, SEARCH_COUNT, null, null,
        maxId, true, new Callback<Search>() {
            @Override
            public void success(Result<Search> searchResult) {

               //Do something with result
            }

            @Override
            public void failure(TwitterException error) {

                Toast.makeText(...); 
            }
        }
);

}

你可以看看这个例子https://github.com/twitterdev/cannonball-android

以及有关 appSession、功能的更多详细信息……:https ://dev.twitter.com/twitter-kit/android/api

于 2015-03-11T21:16:34.837 回答