2013-11-03 30 views
-1

我想獲得從AsyncTask返回Jsoup.connect(「url」)。get()的DOCUMENT,我可以嗎返回它? 我只是想創建類,這將是幫助我獲得一些URL數據))Android - Jsoup:如何從Jsoup.connect(「url」)。get()from AsyncTask

活動類:

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

     lv = (ListView) findViewById(R.id.listView1); 

     try { 
      doc = new GetDataFromUrl(this).execute(functions_list).get(); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (ExecutionException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 




    } 

和擴展的AsyncTask類代碼:

包com。示例。包裹名字;

import java.io.IOException; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 

import android.app.ProgressDialog; 
import android.content.Context; 
import android.os.AsyncTask; 
import android.widget.Toast; 

public class GetDataFromUrl extends AsyncTask<String, Void, Document> { 

    Context mContext; 
    ProgressDialog pdialog; 

    public GetDataFromUrl(Context context) { 
     mContext = context; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pdialog = new ProgressDialog(mContext); 
     pdialog.setTitle(R.string.loading); 
     pdialog.setCancelable(false); 
     pdialog.show(); 
    } 

    @Override 
    protected Document doInBackground(String... data) { 

     try { 
      Document doc = Jsoup.connect(data[0]).get(); 
      return doc; 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Document result) { 
     if (result != null) { 
      super.onPostExecute(result); 
      pdialog.cancel(); 
     } 
     else 
      Toast.makeText(mContext, "NULL ASYNC", Toast.LENGTH_LONG).show(); 

    } 

} 

回答

1

沒有,你只需要創建界面

TaskCompleteListner.java

public Interface TaskCompleteListner{ 

void onTaskComplete(String result); 
} 

YourActivity.java

public Class YourActivity extends Activity implements TaskCompleteListner 
{ 

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

     lv = (ListView) findViewById(R.id.listView1); 

     try { 
      doc = new GetDataFromUrl(this).execute(functions_list).get(); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (ExecutionException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 




    } 
    @override 
    void onTaskComplete(String result) 
    { 

     //your result will be here in result variable 
    } 

} 

GetDataFromUrl.java

mport java.io.IOException; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 

import android.app.ProgressDialog; 
import android.content.Context; 
import android.os.AsyncTask; 
import android.widget.Toast; 

public class GetDataFromUrl extends AsyncTask<String, Void, Document> { 

    Context mContext; 
    ProgressDialog pdialog; 
    TaskCompleteListner taskCompleteListener; 
    public GetDataFromUrl(Context context) { 
     mContext = context; 
     taskCompleteListener=(TaskCompleteListner)context; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pdialog = new ProgressDialog(mContext); 
     pdialog.setTitle(R.string.loading); 
     pdialog.setCancelable(false); 
     pdialog.show(); 
    } 

    @Override 
    protected Document doInBackground(String... data) { 

     try { 
      Document doc = Jsoup.connect(data[0]).get(); 
      return doc; 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Document result) { 
     pdialog.cancel(); 
     if (result != null) { 

       taskCompleteListener.OnTaskComplete(result); 
     } 
     else 
      Toast.makeText(mContext, "NULL ASYNC", Toast.LENGTH_LONG).show(); 

    } 

} 
+0

謝謝,會試試) – IceJOKER

相關問題