我正在尝试在调用方法时加载一个新片段。该方法会创建一个新的片段并“替换”其他片段:
我尝试在方法被调用时加载一个新的片段。这个方法会创建一个新的片段并“替换”其他的片段:
private void showTestFragment(Fragment oldFragment, boolean addBackStack, BaseAdapter adapter, int position) {
Cursor cursor = (Cursor)adapter.getItem(position);
if(cursor != null){
int idx = cursor.getColumnIndexOrThrow(Episode._ID);
long rowId = cursor.getLong(idx);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if(oldFragment != null){
Log.i(TAG, "Removing the old fragment");
fragmentTransaction.remove(oldFragment);
}
TestFragment testFragment = new TestFragment();
testFragment.setId(rowId);
fragmentTransaction.add(android.R.id.content, testFragment);
if(addBackStack){
Log.i(TAG, "Added to the backstack");
fragmentTransaction.addToBackStack(TAG);
}
fragmentTransaction.commit();
Fragment f = getFragmentManager()
.findFragmentById(R.id.index);
Log.i(TAG, "after commit, frag is "+ f);
}
}
这个很好用,直到我返回时。最后的片段应该在我返回时被删除。在我开始对这些活动实施方法之前。
public void onBackPressed(){}
我想要删除最后一个片段,但我不确定自己是否正确地处理了片段的更改。看起来我漏掉了什么...