Я пытаюсь использовать решение, показанное здесь, Как получить результат OnPostExecute () для основной деятельности, потому что AsyncTask - это отдельный класс? , и заметил, что пока код компилируется и работает нормальноAndroid Studio указывает на ошибку и подчеркивает ее. Новичок в Android, поэтому я бы приветствовал указатель в правильном направлении.
В частности, у меня написан этот код:
public class HttpRequest extends AsyncTask <HttpRequestParam, Void, String> {
public AsyncResponse delegate = null;
public HttpRequest(AsyncResponse delegate){
this.delegate = delegate;
}
@Override
protected String doInBackground(HttpRequestParam... hr) { // }
...
}
Все это компилируется и прекрасно работает, но Android-студия жалуется:
"Невозможно получить доступ к com.foo.bar.HttpRequestParam"
Те же поверхности жалоб в подпрограмме в MainActivity.java, где я вызываю запрос HttpRequest:
new HttpRequest(new AsyncResponse() {
@Override
public void processFinish(String output) {
Log.v(TAG, "registerUser async callback completed");
linearThemepackProgress.setVisibility(View.GONE);
}
}).execute(hr);
HttpRequestParam - это простой класс, который я использую для маршалинга определенных атрибутов, которые мне нужно установить для соединения, и является частью пакета (следовательно, он компилируется, несмотря на три ошибки).
Указатели приветствуются.
Я, должно быть, что-то упускаю и беспокоюсь, что пропускаю что-то, что может быть хрупким. Я приветствовал бы любые указатели ...
ОБНОВЛЕНИЕ: тот же самый индикатор ошибки появляется во всей полноте вызовов из моей MainActivity, где все строки ниже помечены подчеркивающим индикатором ошибки!
HttpRequestParam hr = new HttpRequestParam(mContext, this.userRegistrationString(), null, "POST");
linearThemepackProgress.setVisibility(View.VISIBLE);
Log.v(TAG, "ClientUserRequest: " + hr);
new HttpRequest(new AsyncResponse() {
@Override
public void processFinish(String output) {
Log.v(TAG, "registerUser async callback completed");
linearThemepackProgress.setVisibility(View.GONE);
}
}).execute(hr);
Класс HttpParamRequest, показанный ниже:
public class HttpRequestParam {
private String mUrl; // The URL to be connected to
private File mFile; // The directory for the temporary file
private String mHttpType; // Whether the HTTP connection is for posting or download
private Context mContext; // User context
HttpRequestParam(Context c, String s, File f, String ht) {
mUrl = s;
mFile = f;
mHttpType = ht;
mContext = c;
}
File getFile() {
return mFile;
}
String getUrl() {
return mUrl;
}
String getType() {
return mHttpType;
}
Context getContext() {
return mContext;
}
}