我的异步类会抛出一些错误。使用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变量。
答案 0 :(得分:1)
在调用此行之前,您是否已在代码中的其他位置声明url
:new AsyncLoadData(this,this).execute(url);
?
如果没有,您应该在它之前添加行String url = "the value of the url you are trying to call";
,否则url
方法中不存在变量getData
...