2013-08-06 49 views
3

我收到一個警告This FragmentManager should be recycled after use with #recycle(),我試圖解決它。有什麼建議麼?FragmentManager回收

date.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       android.support.v4.app.FragmentTransaction ft = getFragmentManager().beginTransaction(); 
       DialogFragment newFragment = new DatePickerDialogFragment(ChartingFragment.this); 
       newFragment.show(ft, "date_picker_fialog"); 
      } 
    }); 

回答

1

使用的參數,而不是FragmentTransactionFragmentManager:當你鏈接的行爲

@Override 
public void onClick(View v) { 
    DialogFragment newFragment = new DatePickerDialogFragment(ChartingFragment.this); 
    newFragment.show(getFragmentManager(), "date_picker_fialog"); 
} 

FragmentTransaction參數被使用,並且顯示對話框是唯一的操作時無法正常工作。這可能是一個錯誤,但無論如何,它不會這樣工作。

+0

它工作,你會發現'FragmentTransaction '方式甚至在這裏:http://developer.android.com/reference/android/app/DialogFragment.html#BasicDialog - 這是一個Lint的錯誤,顯示只是一個關於創建FragmentTransactions的警告,但從來沒有使用它們,因爲它不知道'DialogFragment#show()'實際上是以正確的方式使用它們的。 – zapl

+0

@zapl啊,真的,沒有注意到這是一個Lint錯誤。根據Adam的帖子的bug報告,它最近被修復了,所以如果ADT是最新的,那麼不應該再成爲問題了。 –

1

根據this google issues頁面,這是一個已經修復的錯誤。嘗試更新ADT。也在this post中再次提到。

+0

即使是2個錯誤,正如解釋[這裏](http://code.google.com/p/android/issues/detail?id=42660#c1) – zapl