Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ListView中显示搜索Twitter4j的结果_Java_Android_Android Listview_Twitter4j - Fatal编程技术网

Java 在ListView中显示搜索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);

我使用Twitter4j获取带有标签的推文,我成功地在控制台中显示了结果,但没有在列表视图中显示

         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。添加(…)…对于该示例,您不需要数组。