Java 在ListView中显示搜索Twitter4j的结果
我使用Twitter4j获取带有标签的推文,我成功地在控制台中显示了结果,但没有在列表视图中显示Java 在ListView中显示搜索Twitter4j的结果,java,android,android-listview,twitter4j,Java,Android,Android Listview,Twitter4j,我使用Twitter4j获取带有标签的推文,我成功地在控制台中显示了结果,但没有在列表视图中显示 list = new ArrayList<String>(); arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list); listtwitt.setAdapter(arrayAdapter);
list = new ArrayList<String>();
arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list);
listtwitt.setAdapter(arrayAdapter);
TwitAsyncTask twitAsync = new TwitAsyncTask();
twitAsync.execute();
}
@SuppressLint("NewApi")
private class TwitAsyncTask extends AsyncTask<Void, Void, Void>{
private ProgressDialog progressDialo;
@Override
protected void onPreExecute() {
progressDialo = ProgressDialog.show(SocialNetwork.this, "", "En cours...");
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
final Query query = new Query();
query.setQuery("%23morocco");
QueryResult result;
try {
result = twitter.search(query);
for (twitter4j.Status status : result.getTweets()) {
k++;
String stat = "@" + status.getUser().getScreenName() + ":" + status.getText() +":"+status.getGeoLocation() +":"+status.getCreatedAt();
SocialNetwork.list.add(stat);
System.out.println(stat);
}
} catch (TwitterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
progressDialo.dismiss();
arrayAdapter.clear();
arrayAdapter.addAll(SocialNetwork.list);
arrayAdapter.notifyDataSetChanged();
super.onPostExecute(result);
}
}
list=newarraylist();
arrayAdapter=新的arrayAdapter(这是android.R.layout.simple\u list\u item\u 1,list);
setAdapter(arrayAdapter);
TwitAsyncTask twitAsync=新TwitAsyncTask();
twitAsync.execute();
}
@SuppressLint(“新API”)
私有类TwitAsyncTask扩展异步任务{
私人progressDialo;
@凌驾
受保护的void onPreExecute(){
progressDialo=ProgressDialog.show(SocialNetwork.this,“,”En cours…);
super.onPreExecute();
}
@凌驾
受保护的Void doInBackground(Void…参数){
最终查询=新查询();
query.setQuery(“%23”);
查询结果;
试一试{
结果=twitter.search(查询);
for(twitter4j.Status状态:result.getTweets()){
k++;
String stat=“@”+status.getUser().getScreenName()+”:“+status.getText()+”:“+status.getGeoLocation()+”:“+status.getCreatedAt()”;
SocialNetwork.list.add(stat);
系统输出打印项次(统计);
}
}捕获(twitter异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
progressDialo.disclose();
arrayAdapter.clear();
arrayAdapter.addAll(SocialNetwork.list);
arrayAdapter.notifyDataSetChanged();
super.onPostExecute(结果);
}
}
我静态测试了一个随机字符串数组,并显示了listview(listview运行良好),我认为问题出在线程中,但我不知道您在哪里检查了(断点)在“搜索(查询)”之后在QueryResult中得到了什么?查询结果返回控制台中显示的tweet列表,但列表为空更改代码。首先做“arrayadapter”的事情。然后运行线程。在线程内部放置listtwit.add(“@”+status.getUser().getScreenName()+”:“+status.getText()+”:“+status.getGeoLocation()+”:“+status.getCreatedAt())我想发生的是,在twitter搜索查询的响应到达之前,您将arraylist添加到listview中。我尝试执行list.add(“测试”)而不是list.add(“@…”不起作用您试图将元素直接添加到listview?->初始化列表视图->运行线程--在线程内部放置listview。添加(…)…对于该示例,您不需要数组。