Java 从网站到android应用程序的照片
我使用ListView和Jsoup创建了一个简单的应用程序,可以显示网站上的照片,任何人都可以告诉我为什么模拟器每次都会崩溃?代码有什么问题 公共类MainActivity扩展了活动{Java 从网站到android应用程序的照片,java,android,listview,jsoup,Java,Android,Listview,Jsoup,我使用ListView和Jsoup创建了一个简单的应用程序,可以显示网站上的照片,任何人都可以告诉我为什么模拟器每次都会崩溃?代码有什么问题 公共类MainActivity扩展了活动{ private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInst
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
listView = (ListView) findViewById( R.id.listview);
final ArrayList list = new ArrayList();
Document doc = null;
try {
doc = (Document) Jsoup.connect("http://mongol.co.il/").get();
Elements divs = ((Elements) doc).select("img[src$=.jpg]");
for (org.jsoup.nodes.Element div : divs)
{
list.add(div);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
}
}不要在您的
onCreate中发出http请求,我认为这将在ICS及以上版本中引发异常,因为您正在阻止UI线程。您好,我的应用程序中也有此功能
解决方案相当简单:
所有联网操作都必须在Asyntask或线程中完成
我个人使用的异步任务如下:
private class LoadImages extends AsyncTask<Void, Void, Void> {
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
// Here you can do any UI operations like textview.setText("test");
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
Document doc = null;
try {
doc = (Document) Jsoup.connect("http://mongol.co.il/").get();
Elements divs = ((Elements) doc).select("img[src$=.jpg]");
for (org.jsoup.nodes.Element div : divs)
{
list.add(div);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return null;
}
私有类LoadImages扩展异步任务{
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
super.onPostExecute(结果);
//在这里,您可以执行任何UI操作,如textview.setText(“测试”);
}
@凌驾
受保护的Void doInBackground(Void…参数){
//TODO自动生成的方法存根
单据单据=空;
试一试{
doc=(文档)Jsoup.connect(“http://mongol.co.il/).get();
元素divs=((元素)文档)。选择(“img[src$=.jpg]”;
for(org.jsoup.nodes.Element div:divs)
{
列表。添加(div);
}
}捕获(IOE1异常){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
返回null;
}
请添加您的crashlog。请从logcat.FATAL EXCEPTION:main java.lang.RuntimeException:无法启动活动组件信息{com.example.mongo/com.example.mongo.MainActivity}:java.lang.ClassCastException:org.jsoup.nodes.Document在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)提供错误详细信息04-20 12:52:46.061:E/AndroidRuntime(400):在java.lang.reflect.Method.invoke(Method.java:521)04-20 12:52:46.061:E/AndroidRuntime(400):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(zgoteinit.java:868)04-20 12:52:46.061:E/AndroidRuntime(400):在com.android.internal.os.zgoteinit.main(zgoteinit.java:626)04-20 12:52:46.061:E/AndroidRuntime(400):在dalvik.system.NativeStart.main(本机方法)非常感谢!这个类不应该扩展活动?onCreate方法呢?