Tôi đang sử dụng thư viện hỗ trợ v4 và không lưu trạng thái của phân đoạn.FragmentManager.getFragment() NullPointerException
@Override
protected void onSaveInstanceState(Bundle outState)
{
...
if(mFragment != null)
getSupportFragmentManager().putFragment(outState, "frag", mFragment);
...
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
...
if(savedInstanceState != null)
{
//Here I get NullPointerException
getSupportFragmentManager().getFragment(savedInstanceState, "frag");
}
...
}
Khi tôi gọi getFragment() NullPointerException được ném (savedInstanceState chứa entry với "frag").
Dưới đây là một phần của đầu ra logcat:
04-18 00:10:56.719: E/AndroidRuntime(14644): Caused by: java.lang.NullPointerException
04-18 00:10:56.719: E/AndroidRuntime(14644): at android.support.v4.app.FragmentManagerImpl.getFragment(FragmentManager.java:569)
Ngoài ra tôi đã cố gắng gọi getFragments()
trả về null
. Điều đó có vẻ lạ với tôi.
Tôi sẽ đánh giá cao bất kỳ trợ giúp nào!
Giải pháp:
tôi quên sử dụng super.onSaveInstanceState(outState);
bên onCreate
phương pháp.
Bạn có gọi onSaveInstanceChế độ bên trong hoạt động gốc của bạn không? ([xem] (http://stackoverflow.com/a/8752360/2668136)) – Fllo
Vâng, rất ngu ngốc của tôi, quên gọi 'super.onSaveInstanceState (outState) '.Cảm ơn bạn rất nhiều! – Tzoiker
Bạn được chào đón. Vui vì nó hoạt động ngay bây giờ. – Fllo