![](/img/trans.png)
[英]Making changes to fragment in Asynctask's onPostExecute() method
[英]Call a Fragment in Asyncktask OnPostExecute method
我有一个小问题,我有一个 AsyncTask,如果用户注册与否,我会从服务器获得响应,在调用之后,如果用户访问存在于另一个片段中,也可以通过存储在首选项用户电子邮件中,但是当我调用getFragmentManager()
时getFragmentManager()
问题,有人可以帮我吗? 谢谢你。 这是我的代码。
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()'
。
最好的解决方案可能是让您的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
。 查看AsyncTask 中活动的 Access 实例变量的好示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.