如何从片段类中的 AsyncTask 类的 onPostExecute 函数中删除片段



我有一个NagivationDrawer,当用户按下特定项目时,我会更改片段。

所以我有这样的东西

public class MyFragment  extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
......
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState){  
....... 
}
public class MyAsynchTack extends AsyncTask<Void, Void, Boolean> {  
.
.
.
@Override
protected void onPostExecute(final Boolean success) {
showProgress(false);
if (success) {
getActivity().getSupportFragmentManager().popBackStack();
} else {
String title = getString(R.string.serverErrTitle);
String message = getString(R.string.serverErr);
DialogBoxNetworkError dialog = new DialogBoxNetworkError();
Bundle args = new Bundle();
args.putString(DialogBoxNetworkError.ARG_TITLE, title);
args.putString(DialogBoxNetworkError.ARG_MESSAGE, message);
dialog.setArguments(args);
dialog.show(getActivity().getFragmentManager(), "tag");
}
}         
.
.
.
.
}

我正在使用它来删除成功的片段:

if (success) {
getActivity().getSupportFragmentManager().popBackStack();
} 

但它不起作用,我也尝试了我发现的其他解决方案。

谢谢。

编辑

这是从导航抽屉活动添加片段的方式:

public void addNewWh(View view) {
SellerNewWhFragment fragment = null;
fragment = new SellerNewWhFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.commit();
}

你错过了fragmentTransaction.addToBackStack(null);电话 如文档所述:

将此事务添加到后退堆栈。这意味着事务将在提交后被记住,并在稍后从堆栈中弹出时反转其操作。

之后,您将能够撤销此交易。

最新更新