2015-01-15 2 views
0

Fragment getArguments() return null Указатель исключений. Уже на следующий день подумайте, как исправить этот код, весь Интернет поднялся на поиски ответа. Пожалуйста, помогите мне. Код как верный, но почему-то сбой NullPointerException?Fragment getArguments() return null Указатель исключений

P.S. Извините за мой английский, но я думаю, вы понимаете, что я хочу спросить.))

// ФРАГМЕНТ

public static AppsManagerFragment userFragList(int a){ 
    AppsManagerFragment f = new AppsManagerFragment(); 
    Bundle bundle = new Bundle(); 
    bundle.putInt("secretKey", a); 
    f.setArguments(bundle); 
    return f; 

}; 

public static AppsManagerFragment systemFragList(int a){ 
    AppsManagerFragment f = new AppsManagerFragment(); 
    Bundle bundle = new Bundle(); 
    bundle.putInt("secretKey", a); 
    f.setArguments(bundle); 
    return f; 

}; 


int getFragmentArg() { 
    return this.getArguments().getInt("secretKey"); // here there NPE 
} 

// активность

private FragmentTabHost mTabHost; 
private DataApps dApps; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.apps_manager_activity); 
    dApps = new DataApps(this); 

    // instance initialization 
    AppsManagerFragment userFrag = AppsManagerFragment.userFragList(1); 
    AppsManagerFragment systemFrag = AppsManagerFragment.systemFragList(2); 

    mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost); 
    mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 

    mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab1"), userFrag.getClass(), null); 
    mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Tab2"), systemFrag.getClass(), null); 
} 

ответ

5

Из кода я могу в состоянии чтобы понять, что вы возвращаете статический экземпляр фрагмента, но в методе getFragmentArg() вы получаете доступ к нестационарному экземпляру фрагмента. На самом деле вам следует следовать методу findFragmentByTag(), а затем использовать getArguments() в этом экземпляре. Это решит вашу проблему.

Смежные вопросы