Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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 如何使用asynctask使用jsoup进行解析_Java_Android_Parsing_Android Asynctask_Jsoup - Fatal编程技术网

Java 如何使用asynctask使用jsoup进行解析

Java 如何使用asynctask使用jsoup进行解析,java,android,parsing,android-asynctask,jsoup,Java,Android,Parsing,Android Asynctask,Jsoup,我必须解析网页并将某个标记的内容存储在ListView中。 现在,我有了这个代码: public class MainActivity extends Activity { private MyTask myTask; ListView listView; final String URL = "http://en.wikipedia.org"; @Override protected void onCreate(Bundle savedIns

我必须解析网页并将某个标记的内容存储在ListView中。 现在,我有了这个代码:

    public class MainActivity extends Activity 
{
    private MyTask myTask;
    ListView listView;
    final String URL = "http://en.wikipedia.org";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.list);
        myTask = new MyTask();
        myTask.execute(URL);
    }

    class MyTask extends AsyncTask<String, Void, String>
    {


        @Override
        protected void onPreExecute()
        {
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... params) {
            String url = params[0];
            Document doc;
            Elements table = null;
            try {
                doc = Jsoup.connect(url).get();
                table = doc.select("table").select("tbody");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return table.toString();
        }

        protected void onPostExecute(String result)
        {
            super.onPostExecute(result);
            listView = (ListView) findViewById(R.id.list);
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.riga);
            listView.setAdapter(adapter);
        }
    }
}
公共类MainActivity扩展活动
{
私有MyTask-MyTask;
列表视图列表视图;
最终字符串URL=”http://en.wikipedia.org";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(listView)findViewById(R.id.list);
myTask=新建myTask();
myTask.execute(URL);
}
类MyTask扩展了AsyncTask
{
@凌驾
受保护的void onPreExecute()
{
super.onPreExecute();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
字符串url=params[0];
文件文件;
元素表=空;
试一试{
doc=Jsoup.connect(url.get();
表格=文件选择(“表格”)。选择(“正文”);
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回表.toString();
}
受保护的void onPostExecute(字符串结果)
{
super.onPostExecute(结果);
listView=(listView)findViewById(R.id.list);
ArrayAdapter=新的ArrayAdapter(MainActivity.this,R.layout.riga);
setAdapter(适配器);
}
}
}
但是执行总是返回一个白色屏幕。我能做什么??
我确定错误在postExecute方法中,但我看不到它。

您确定这个
table=doc.select(“table”).select(“tbody”)返回任何内容?是的,解析器作为java程序进行了测试,并始终返回,将结果记录在
onPostExecute
doInBackground
中。适用于桌面的功能不一定适用于移动设备。选中
userAgent