как получить твиттер темы по нажатию кнопки android - twitter4j? - PullRequest
0 голосов
/ 22 января 2019

Я изучал android в течение небольшого периода времени, и я пытаюсь добавить некоторые функции твиттера в свои приложения.

Что я пытаюсь сделать, так это получить темы для Твиттераи поместите его в строку, а затем отобразить их в текстовом представлении.Является ли это возможным?Я почти ничего не нашел в интернете, поэтому надеюсь, что вы мне поможете.

`

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


    getTrendingButton = (Button) findViewById(R.id.gettrendingbutton);
    trendingList = (TextView) findViewById(R.id.trendinglist);



    cb = new ConfigurationBuilder();
    cb.setApplicationOnlyAuthEnabled(false);
    cb.setOAuthConsumerKey("key")
            .setOAuthConsumerSecret("key")
            .setOAuthAccessToken("key")
            .setOAuthAccessTokenSecret("key");

    twitterFactory = new TwitterFactory(cb.build());
    twitter = twitterFactory.getInstance();


}

@Override
protected void onStart()
{
    super.onStart();

    getTrendingButton.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            String trendsString = " ";
            Trends trends;
            try {
                trends = twitter.getPlaceTrends(1);
                int count = 0;
                for (Trend trend : trends.getTrends()) {
                    if (count < 10)
                    {
                        trendsString = trend.getName().toString() + "\n";
                    }
                    trendingList.setText(trendsString);
                }
            } catch (TwitterException e) {
                e.printStackTrace();
            }

        }
    });


}`

, и здесь анализ трассировки стека

android.os.NetworkOnMainThreadExceptionв android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork (StrictMode.java:1448) в java.net.Inet6AddressImpl.lookupHostByName (Inet6AddressImpl.java:102) в java.net.Inet6AddressImpl.lookj.Amp.net.InetAddress.getAllByName (InetAddress.java:787) на com.android.okhttp.Dns $ 1.lookup (Dns.java:39) на com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress (RouteSelect) на com.android.okhttp.internal.http.RouteSelector.nextProxy (RouteSelector.java:148) на com.android.okhttp.internal.http.RouteSelector.next (RouteSelector.java:90) на com.android.okhttp.internal.http.StreamAllocation.findConnection (StreamAllocation.java:190) по адресу com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection (StreamAllocation.java:142) по адресу com.android.okhttp.internal.http.StreamAllocation.newStream (StreamAllocation.java:104) в com.android.okhttp.internal.http.HttpEngine.connect (HttpEngine.java:392) в com.android.okhttp.internal.http.Http.sendRequest (HttpEngine.java:325) по адресу com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute (HttpURLConnectionImpl.java:489) по адресу com.android.okhttp.internal.huc.HttpURLConnempImpl (hlp)в com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode (HttpURLConnectionImpl.java:566) в com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode (Delegation.huc.HttpsURLConnectionImpl.getResponseCode (Unknown Source: 0). в twitter4j.HttpResponseImpl (HttpResponseImpl.java:35) в twitter4j.HttpClientImpl.handleRequest (HttpClientImpl.java:149) в twitter4j.HttpClientBase.request (HttpClientBase.java:57)в twitter4j.HttpClientBase.get (HttpClientBase.java:75) в twitter4j.TwitterImpl.get (TwitterImpl.java:2066) в twitter4j.TwitterImpl.getPlaceTrends (TwitterImpl.java:1912) в gusmappdev.myapp.TrendingActivity $ 1.onClick (TrendingActivity.java:77) в android.view.View.performClick (Просмотреть.Java: 6897) на android.widget.TextView.performClick (TextView.java:12693) на android.view.View $ PerformClick.run (View.java:26100) на android.os.Handler.handleCallback (Handler.java:789) на android.os.Handler.dispatchMessage (Handler.java:98) на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6942) на java.lang.reflect.Method.invoke (собственный метод) на com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:327) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

Надеюсь, вы, ребята, можете мне помочь :) Спасибо

1 Ответ

0 голосов
/ 28 января 2019

Вы должны сделать доступ к сети в другом потоке.Не разрешается делать сетевые вызовы в главном потоке приложений.Вот почему вы получаете NetworkOnMainThreadException.

Вот пример, как это можно решить: Как исправить android.os.NetworkOnMainThreadException?

...