使用Fabric for android获取Tweet字符串值

时间:2016-02-08 16:41:13

标签: android twitter twitter-fabric

我正在开发一个Android应用程序,我是Fabric API的新手。

我正在尝试获取推文的字符串值。我可以使用所有推文(从文档示例中获取的代码)填充ListActivity,但无法弄清楚如何访问该列表以获取字符串值甚至是推文ID。

当我这样做时:

Log.d("", adapter.getItem(1).toString());

Log.d("", adapter.getItem(1));

它告诉我"索引1无效,大小为0"

import android.app.ListActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;

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

public class TwitterFeed extends ListActivity {
    Intent intent = new Intent();
    TweetTimelineListAdapter test;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
        String username = pref.getString("username", "NULL");
        super.onCreate(savedInstanceState);

        final UserTimeline userTimeline = new UserTimeline.Builder()
        .screenName(username).includeReplies(true).includeRetweets(true)
                .build();
        final TweetTimelineListAdapter adapter = new TweetTimelineListAdapter.Builder(this)
                .setTimeline(userTimeline)
                .build();
        setListAdapter(adapter);
        test = adapter;
    }
    @Override
    protected void onResume(){
        super.onResume();
        Log.d("ListItem", test.getItem(1).toString());
    }
}

非常感谢任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:1)

所以经过一系列的研究,我能够获取所需的信息。你需要从另一个类调用它。它返回0的原因是因为列表没有完成加载。我在自定义适配器中的onClick侦听器中有此块。

    TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient();
// Can also use Twitter directly: Twitter.getApiClient()
                StatusesService statusesService = twitterApiClient.getStatusesService();
                statusesService.show(tweetID, null, null, null, new Callback<com.twitter.sdk.android.core.models.Tweet>() {
                    @Override
                    public void success(Result<Tweet> result) {
                        //Do something with result, which provides a Tweet inside of result.data
                        Log.d("Tweet Data", result.data.text);
                    }
                    public void failure(TwitterException exception) {
                      //Do something on failure
                    }
                });

希望有人可以利用这个。