java - how to get twitter trending topics on button click android - twitter4j?
问题描述
I've been studying android for a small period of time, and i'm trying to put some twitter functions in to my apps.
What i'm trying to do is get the twitter trending topics and put it on a String, and then display them on a textview. Is it possible? I found almost nothing on the internet, so hope you can help me.
`
@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();
}
}
});
}`
and here the analyze stacktrace
android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1448) at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:102) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:90) at java.net.InetAddress.getAllByName(InetAddress.java:787) at com.android.okhttp.Dns$1.lookup(Dns.java:39) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:200) at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:148) at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:90) at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:190) at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:142) at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:104) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:392) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:325) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:489) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:435) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:566) at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105) at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(Unknown Source:0) at twitter4j.HttpResponseImpl.(HttpResponseImpl.java:35) at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:149) at twitter4j.HttpClientBase.request(HttpClientBase.java:57) at twitter4j.HttpClientBase.get(HttpClientBase.java:75) at twitter4j.TwitterImpl.get(TwitterImpl.java:2066) at twitter4j.TwitterImpl.getPlaceTrends(TwitterImpl.java:1912) at gusmappdev.myapp.TrendingActivity$1.onClick(TrendingActivity.java:77) at android.view.View.performClick(View.java:6897) at android.widget.TextView.performClick(TextView.java:12693) at android.view.View$PerformClick.run(View.java:26100) at android.os.Handler.handleCallback(Handler.java:789) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6942) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Hope you guys can help me :) Thanks
解决方案
有一种方法可以将getPlaceTrends()
方法与AsyncTwitter
实例一起使用。但是在这种情况下,方法是void
,我不确定如何存储结果。
推荐阅读
- apache - 如何在 Apache 上将 HTTP 重定向到 HTTPS?
- git - 分叉存储库应该只推送更改吗?
- android - 测试广告显示但真实广告不显示(广告加载失败:3)
- java - 在java中将ISO日期字符串转换为Jdatechooser日期
- javascript - 在量角器中使用 expect() 时遇到问题,想要获取第一个孩子的文本并将其与字符串进行比较
- c# - CosmosDB 中日期时间字段的 SQL 查询问题
- python - 如何计算每年在我的python数据集中出现多少次
- python - 有没有办法解密用字典中具有字母值的数字写的句子?
- xmlhttprequest - 获取 icecast 元数据文件
- plot - 使用 UMAP 进行聚类和绘图