-1

У меня есть небольшая проблема, у меня есть AsyncTask, где я получаю ответ от сервера, если пользователь зарегистрирован или нет, будет ли после вызова, если пользователь обращается к существующему в другом фрагменте , также путем сохранения в электронной почте пользователя настроек, однако у меня проблема, когда я звоню getFragmentManager(), может кто-нибудь мне помочь? Спасибо. Это мой код.Вызов фрагмента в Asyncktask Метод OnPostExecute

LoginTask.java

public class LoginTask extends AsyncTask<String, Void, User> { 

public LoginTask() { 

} 

@Override 
protected User doInBackground(String... params) { 
    User user = new User(); 
    user.setEmail(params[1]); 
    user.setPassword(params[2]); 

    // Set the Content-Type header 
    HttpHeaders requestHeaders = new HttpHeaders(); 
    requestHeaders.setContentType(new MediaType("application", "json")); 
    HttpEntity<User> requestEntity = new HttpEntity<User>(user, requestHeaders); 

    // Create a new RestTemplate instance 
    RestTemplate restTemplate = new RestTemplate(); 

    // Add the Jackson and String message converters 
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); 

    // Make the HTTP POST request, marshaling the request to JSON, and the response to a String 
    ResponseEntity<User> responseEntity = restTemplate.exchange(params[0], HttpMethod.POST, requestEntity, User.class); 

    return responseEntity.getBody(); 
} 

@Override 
protected void onPostExecute(User user) { 
    if (user.getSuccess()){ 
     android.app.FragmentManager fragmentManager = getFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.content_frame, new AreaRiservataFragment()).commit(); 
    }else{ 

    } 
} 
} 

Я получаю ошибку: Cannot Resolve Method 'getFragmentManager()'.

+0

добавить '@ переопределить' перед' onPostExecute (......) ' –

+0

Ошибка остается, ничего не изменилось –

ответ

0

Лучшим решением может быть сделать ваш AsyncTask вложенным классом вашей деятельности.

public class YourActivity extends Activity { 

... 


    class LoginTask extends AsyncTask<String, Void, User> { 

    ... 

    @Override 
    protected User doInBackground(String... params) { 
     ... 
    } 

    @Override 
    protected void onPostExecute(User user) { 
     ... 
    } 
    } 
} 

Если это не возможно для вас, вы можете передать вашу деятельность в качестве параметра AsyncTask. Взгляните на хороший пример Access instance variables from an activity inside a AsyncTask.

Смежные вопросы