Я только что получил развитие android, и при попытке создать форму входа я столкнулся с некоторыми проблемами.onPostExecute не запускается, @override doesnt работает разработка Android
Что я хочу сделать, это ввести имя пользователя и пароль и нажать логин, когда нажата кнопка входа в систему. Я хочу, чтобы он выполнял запрос JSON с информацией учетной записи на мой сервер и получал ответ от того, является ли пользователь разрешено войти. Если пользователь разрешен, я хочу перейти на новое представление.
Мой код правильно принимает информацию JSON, но из того, что я понял, UI-код (нажатие нового действия) должен выполняться в onPostExecute(). Моя проблема в том, что onPostExecute никогда не запускается, я смотрел на другой ppl с той же проблемой, но их решения не сработали для меня. Они сказали, что мне нужно иметь @Override перед onPostExecute, но когда я добавляю, что получаю ошибку компиляции, которая «метод не отменяет метод из своего суперкласса».
Я читал решения от людей, имеющих эту проблему, а также из того, что я прочитал, проблема заключается в том, что метод onPostExecute должен иметь те же параметры, что и параметр result из doInBackground(). Моя проблема в том, что я чувствую, что я уже делаю, и когда я пытаюсь смотреть в том, что у суперкласса есть (то есть AsyncTask.java) он говорит, что метод onPostExecute() выглядит следующим образом:
protected void onPostExecute(Result result) {
}
Но у меня нет идея, что класс Результат принадлежит ..
networkingTask выполняется с помощью этой строки:
new networkingTask().execute(url);
Если кто-то может мне помочь я буду вечно благодарен! :)
Это то, что мой код выглядит
private class networkingTask extends AsyncTask {
Context context;
private networkingTask(Context context) {
this.context = context.getApplicationContext();
}
public networkingTask() {
}
@Override
protected JSONObject doInBackground(Object... params) {
try {
String urlString = (String) params[0];
System.out.println(urlString);
// Creating JSON Parser instance
JSONParser jParser = new JSONParser();
// getting JSON string from URL
JSONObject json;
json = jParser.getJSONFromUrl(urlString);
String responseLogged = json.getString("logged");
System.out.println("can we log in?: "+ responseLogged);
return json;
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(JSONObject result) {
String responseLogged = "";
try {
responseLogged = result.getString("logged");
} catch (JSONException e) {
e.printStackTrace();
}
if(responseLogged.equals("true")){ //Login = true
Intent intent = new Intent(context, ShowListActivity.class);
intent.putExtra(EXTRA_JSON_OBJECT, result.toString());
startActivity(intent);
} else{ //Login = false
System.out.println("wrong password");
}
return;
}
}
Все еще есть проблемы в моем коде, но по крайней мере onPostExecute() работает! Большое спасибо <3 – Daniel
@ Даниэль, я рад узнать, что это помогает. : D – dumbfingers