0
내 비동기 클래스에서 오류가 발생합니다. AsyncLoadData이있는 행은 AsyncLoadData이 url 변수를 전달해야 볼 수 있듯이 나는 지역 변수 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);
}
}
를 작성해야한다고 말한다.
이 코드는 꽤 고장 ... 그렇지 않으면 변수
url
이getData
방법에 존재하지 않는, 그냥 전에 선String url = "the value of the url you are trying to call";
을 추가해야합니다. 1) 컴파일러에서 "getData"메서드에 "url"이라는 변수가 없다고 알려줍니다. 2) AsyncTask가 깨졌습니다. UI가 아닌 스레드에서 UI 객체 메서드를 건드릴 수 없습니다. –