當我更改一個片段時,我想比較一個片段與當前片段。如果它們是相同的,則不需要替換它們。Android比較兩個片段
我試圖
public void displayFragment(Fragment fragment){
FragmentManager fm = getSupportFragmentManager();
Fragment currentFragment = fm.findFragmentById(R.id.content_frame);
if(!currentFragment.equals(fragment))
getSupportFragmentManager().beginTransaction().addToBackStack(null).replace(R.id.content_frame, fragment).commit();
}
,但它不工作,該片段被改變,即使新的一個是相同的
的解決方案? 感謝
編輯
解決辦法:找出片段
public void displayFragment(Fragment fragment){
FragmentManager fm = getSupportFragmentManager();
Fragment currentFragment = fm.findFragmentById(R.id.content_frame);
if(!fragment.getClass().toString().equals(currentFragment.getTag())){
getSupportFragmentManager()
.beginTransaction()
.addToBackStack(null)
.replace(R.id.content_frame, fragment, fragment.getClass().toString()) // add and tag the new fragment
.commit();
}
}
如果是在同一類? – Piyush