簡體   English   中英

下面的代碼有什么問題?

[英]What's wrong with the code below?

我正從大書呆子牧場的書中學習。

FragmentManager fm = getFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);

if (fragment == null) {
    fragment = new CrimeFragment();
    fm.beginTransaction().add(R.id.fragmentContainer, fragment).commit();
}

出現類型不匹配錯誤。 但是,如果我打電話

CrimeFragment fragment = fm.findFragmentById(R.id.fragmentContainer);

不起作用。 所以我的問題是如何使用布局中的id調用CustomFragment(CrimeFragment)?

提前致謝。

我通常這樣做:

CrimeFragment fragment = new CrimeFragment();

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentContainer, fragment).commit();

要么

transaction.add(R.id.fragmentContainer, fragment).commit();

更多信息:

如果在onCreate方法中創建片段,則屏幕方向更改將導致片段再次更新。 你可以在這里阻止這個:

if (savedInstanceState == null){
  CrimeFragment fragment = new CrimeFragment();
  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
  transaction.replace(R.id.fragmentContainer, fragment, "fragment").commit();
}else{
  CrimeFragment homeFragment = (CrimeFragment) getSupportFragmentManager().findFragmentByTag("fragment");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM