【问题标题】:Android Studio Twitter search using twitter4jAndroid Studio Twitter 搜索使用 twitter4j
【发布时间】:2018-05-08 23:35:06
【问题描述】:

我正在尝试制作一个搜索 twitter 的 android studio 程序。我正在使用 Twitter4J 编写代码。我以为我的代码是正确的,但现在应用程序一加载就崩溃了。这是代码。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;

public class MainActivity extends AppCompatActivity {




TextView tweetDisplay =(TextView) findViewById(R.id.tweettext);

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


    Button Buffalo = (Button) findViewById(R.id.BuffaloButton);
    Buffalo.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            ConfigurationBuilder cb = new ConfigurationBuilder();
            cb.setDebugEnabled(true)
                    .setOAuthConsumerKey("Mykey")

                    .setOAuthConsumerSecret("my secret")
                    .setOAuthAccessToken("token")
                    .setOAuthAccessTokenSecret("my token sercert");

            Twitter twitter = TwitterFactory.getSingleton();
            try {
                Query query = new Query("#Buffaloriver");
                QueryResult result;
                result = twitter.search(query);
                for (Status status : result.getTweets()) {
                    tweetDisplay.setText("@" + 
status.getUser().getScreenName() + ":" + status.getText());

                }
            }
            catch(TwitterException e){
                tweetDisplay.setText(R.string.Oops);
                e.printStackTrace();
            }
        }
    });
}


};

我已经添加了所有密钥,并且我在清单中打开了互联网访问。我不知道我做错了什么。感谢您的帮助!

【问题讨论】:

    标签: android twitter twitter4j


    【解决方案1】:

    您在错误的位置初始化了 tweetDisplay 对象。它应该在调用 setContentview 之后的 onCreate 方法下

    【讨论】:

    • 好的解决了这个问题,现在当我点击按钮时它就崩溃了。
    • 11-24 21:03:44.037 11861-11861/jlfletcher.cpsc4367.ualr.edu.finalproject E/AndroidRuntime:致命异常:主进程:jlfletcher.cpsc4367.ualr.edu.finalproject,PID : 11861 android.os.NetworkOnMainThreadException
    • 好的,现在的问题是你在主线程上进行网络操作。这就是它崩溃的原因。使用 Asynctask 加载您的 twitter API。你可以找到很多关于 Asynctask 任务实现的教程。在按钮单击中编写的任何代码都必须移动到 Asynctask 或其他线程
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 2015-08-10
    • 2013-07-04
    • 2011-04-01
    • 1970-01-01
    • 2014-04-27
    相关资源
    最近更新 更多