Android 在单个活动中以三个片段进行popBackStack的最佳方式?
我遇到的问题是,当从其他片段进行popbackstack时,webservice正在第二次调用CreateView。我完全建议您在构建它们之前进行检查 如果你已经设法与你的碎片沟通。然后你可以使用这个简单的方法Android 在单个活动中以三个片段进行popBackStack的最佳方式?,android,android-fragments,fragment,Android,Android Fragments,Fragment,我遇到的问题是,当从其他片段进行popbackstack时,webservice正在第二次调用CreateView。我完全建议您在构建它们之前进行检查 如果你已经设法与你的碎片沟通。然后你可以使用这个简单的方法 private void changeFragment(Fragment frag, boolean saveInBackstack) { String backStateName = ((Object) frag).getClass().getName(); try
private void changeFragment(Fragment frag, boolean saveInBackstack) {
String backStateName = ((Object) frag).getClass().getName();
try {
FragmentManager manager = getSupportFragmentManager();
if (manager.findFragmentByTag(backStateName) == null) {
//fragment not in back stack, create it.
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.container, frag, backStateName);
if (saveInBackstack) {
Log.d(TAG, "Change Fragment: addToBackTack " + backStateName);
transaction.addToBackStack(backStateName);
} else {
Log.d(TAG, "Change Fragment: NO addToBackTack");
}
transaction.commit();
} else {
manager.popBackStack();
}
} catch (IllegalStateException exception) {
Log.w(TAG, "Unable to commit fragment, could be activity as been killed in
}
}
有什么问题吗?是的,我有一个列表片段,当我是弹出堆栈时,listview项中有问题。这是因为您的配置。我的答案应该能解决你的主要问题。