0
我的異步類拋出了一些錯誤。與AsyncLoadData行說我應該創建局部變量的URL異步類未通過參數
public void getData() {
new AsyncLoadData(this,this).execute(url);
}
我AsyncLoadData類
package com.example.hay;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.EditText;
public class AsyncLoadData extends AsyncTask<String, Void, String> {
private Context mContext;
private ILoadDataListener mListener;
public AsyncLoadData(Context context, ILoadDataListener listener) {
this.mContext = context;
this.mListener = listener;
}
@Override
protected String doInBackground(String... params) {
try {
EditText tf = (EditText) this.findViewById(R.id.editText1);
String url = params[0];
url = tf.getText().toString();
Document doc;
doc = Jsoup.connect(url).get();
String title = doc.text();
return title;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
private EditText findViewById(int edittext1) {
return null;
}
@Override
protected void onPostExecute(String result) {
mListener.complete(result);
}
@Override
protected void onPreExecute() {
mListener.loading();
}
public interface ILoadDataListener {
void loading();
void complete(String result);
}
}
正如你可以看到AsyncLoadData應通過url變量。
這個代碼是非常壞了。 1)正如編譯器告訴你的,在「getData」方法中沒有名爲「url」的變量。 2)您的AsyncTask已損壞:您可能無法觸及非UI線程的UI對象方法。 –