调用Asyncktask OnPostExecute方法的片段 [英] Call a Fragment in Asyncktask OnPostExecute method
问题描述
我有一个小问题,我有一个AsyncTask的,我从服务器的响应,如果用户被登记,将呼叫后,如果用户访问存在于另一片段,还通过在$存储p $ pferences用户的电子邮件,但我有问题,当我打电话 getFragmentManager()
,可能有人帮助我吗?谢谢。这是我的code。
I have a little problem, I have a AsyncTask where I get a response from the server if the user is registered or not, would that after the call, if the user accesses exist in another fragment, also by storing in a preferences user email, however I have problem when I call getFragmentManager()
, could someone help me out? Thank you. This is my code.
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{
}
}
}
我得到的错误:不能解析方法getFragmentManager()
推荐答案
最好的解决办法可能是让你的的AsyncTask
嵌套类的活动。
The best solution might be to make your AsyncTask
a nested class of your activity.
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
。看一看的好例子<一个href=\"http://stackoverflow.com/questions/6024658/access-instance-variables-from-an-activity-inside-a-asynctask\">Access从AsyncTask的内的活动实例变量。
If it is not possible for you, you can pass your activity as a parameter to AsyncTask
. Have a look at the good example Access instance variables from an activity inside a AsyncTask.
这篇关于调用Asyncktask OnPostExecute方法的片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!