-2

Jsoup を使用して Web サイトから文字列を返そうとしていますが、Jsoup.connect の後でコードが壊れ、文字列が返されません。

私のコードは次のとおりです。

    class fetcher extends AsyncTask<Void,Void,Void>{
 String myString = null;
 @Override
    protected Void doInBackground(Void... arg0) { 
        Document doc = null;
        try {

            doc = Jsoup.connect("http://www.ismmusalla.org/").get();

            Elements divs = doc.select("div#title1");


                for (Element div : divs) {

                    myString=myString+" " +div.text();


                      }
        }
        catch (Exception e) {
            // TODO Auto-generated catch block

            e.printStackTrace();

        }
        return null;
}
 protected void onPostExecute(String result)
 {
     textview.setText(myString);


 }
}
4

3 に答える 3

1

AsyncTaskdoInBackground()にはvoid return typeがあるため、それをStringに変更してas returnのmyString代わりに配置するだけです。nulldata

お気に入り、

protected String doInBackground(Void... arg0) {

 return myString;
}

また、AsyncTask の宣言は適切ではありextends AsyncTask<Void,Void,Void>ませんextends AsyncTask<Void,Void,String>

http://developer.android.com/reference/android/os/AsyncTask.htmlを見てください。

于 2013-06-12T06:49:05.360 に答える
-1

以下のコードを使用します。

class fetcher extends AsyncTask<Void,Void,String>{
 String myString = "";
 @Override
    protected String doInBackground(Void... arg0) { 
        Document doc = null;
        try {

            doc = Jsoup.connect("http://www.ismmusalla.org/").get();

            Elements divs = doc.select("div#title1");


                for (Element div : divs) {

                    myString=myString+" " +div.text();


                      }
        }
        catch (Exception e) {
            // TODO Auto-generated catch block

            e.printStackTrace();

        }
        return myString;
}
 protected void onPostExecute(String result)
 {
     textview.setText(result);


 }
}
于 2013-06-12T06:46:38.453 に答える