使用异步任务获取数据,作为listview的data,但是异步任务需要时间,这个怎么办 你可以在AsyncTask中的onPostExecute方法中去声明Adapter,然后赋值撒,这个是在数据获取之后的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在onPostExecute()里声明adapter总是会报出The constructor ArrayAdapter<String>(MainActivity.GrabData, int, ArrayList<String>) is undefined 在onPostExecute()里声明adapter总是会报出The constructor ArrayAdapter<String>(MainActivity.GrabData, int, ArrayList<String>) is undefined 在onPostExecute()里声明adapter总是会报出The constructor ArrayAdapter<String>(MainActivity.GrabData, int, ArrayList<String>) is undefinedclass TestTask extends AsyncTask<String, Void, ArrayList<String>> { @Override protected ArrayList<String> doInBackground(String... params) { // TODO Auto-generated method stub return null; } @Override protected void onPostExecute(ArrayList<String> result) { // TODO Auto-generated method stub super.onPostExecute(result); ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,result); } } 像这样就可以了,不会报错,你刚才那个报错是MainActivity.GrabData这个有问题,这里是传入context对象 我照你的写法改了 在OnPostExecute里传入result设置了adapter 也没有报错 但是运行起来 实际的data还是空的 贴下我的代码 class GetListData extends AsyncTask<String, Void, ArrayList<HashMap<String, Object>>> { @Override protected ArrayList<HashMap<String, Object>> doInBackground( String... arg0) { // TODO Auto-generated method stub try { Document doc = Jsoup.connect(path).timeout(5000).get(); Elements newsdiv = doc.getElementsByClass("d_list_txt"); Elements links = newsdiv.select("ul").select("a"); for (Element link : links) { HashMap<String, Object> map = new HashMap<String, Object>(); String linkhref = link.attr("href"); String linktext = link.text(); map.put("newslink", linkhref); map.put("newstext", linktext); newsdatalist.add(map); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return newsdatalist; } @Override protected void onPostExecute(ArrayList<HashMap<String, Object>> result) { // TODO Auto-generated method stub super.onPostExecute(result); SimpleAdapter newsadapter = new SimpleAdapter(Main.this, result, R.layout.list_item, new String[] { "newstext" }, new int[] { R.id.newsTitle }); newslist.setAdapter(newsadapter); } } doInBackground里的抓取方法肯定没问题因为如果我不是用异步抓取直接在UI线程里抓取的话就能正常显示出listview但是一旦使用了异步 adapter 不管是设置在 oncreat里 还是OnpostExecute里都不能显示出listview 你这就要数据使用handler发送到UI线程进行添加到listview中 关于自定义控件的问题 PDF阅读器如何写? Unity3d做的游戏或应用中如何调用android代码 Gallery问题,求指教 好心人帮我看看UnkownHostException 新手一枚,有木有人帮我看下问题在哪啊 Android 从服务器下载文件excel、pdf下载不了,求帮忙解决 请教,关于android jni如何使用libandroid_runtime,libstagefright_foundation库 js 小问题求助 新手求助各位程序员学长们 如何实现这样的功能 求助~编写采集信息的应用
总是会报出
The constructor ArrayAdapter<String>(MainActivity.GrabData, int, ArrayList<String>) is undefined
在onPostExecute()里声明adapter
总是会报出
The constructor ArrayAdapter<String>(MainActivity.GrabData, int, ArrayList<String>) is undefined
在onPostExecute()里声明adapter
总是会报出
The constructor ArrayAdapter<String>(MainActivity.GrabData, int, ArrayList<String>) is undefinedclass TestTask extends AsyncTask<String, Void, ArrayList<String>> { @Override
protected ArrayList<String> doInBackground(String... params) {
// TODO Auto-generated method stub
return null;
} @Override
protected void onPostExecute(ArrayList<String> result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1,result);
}
}
我照你的写法改了 在OnPostExecute里传入result设置了adapter 也没有报错 但是运行起来 实际的data还是空的
贴下我的代码 class GetListData extends
AsyncTask<String, Void, ArrayList<HashMap<String, Object>>> { @Override
protected ArrayList<HashMap<String, Object>> doInBackground(
String... arg0) {
// TODO Auto-generated method stub
try {
Document doc = Jsoup.connect(path).timeout(5000).get();
Elements newsdiv = doc.getElementsByClass("d_list_txt");
Elements links = newsdiv.select("ul").select("a");
for (Element link : links) {
HashMap<String, Object> map = new HashMap<String, Object>();
String linkhref = link.attr("href");
String linktext = link.text();
map.put("newslink", linkhref);
map.put("newstext", linktext);
newsdatalist.add(map);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return newsdatalist;
} @Override
protected void onPostExecute(ArrayList<HashMap<String, Object>> result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
SimpleAdapter newsadapter = new SimpleAdapter(Main.this, result,
R.layout.list_item, new String[] { "newstext" },
new int[] { R.id.newsTitle });
newslist.setAdapter(newsadapter);
}
}