0
我無法解決此問題。我認爲FragmentTransaction像「我創建片段我打開它」一樣工作,但是這樣做會出錯。我的問題是,當我從FragmentB調用方法時,我得到了NPE,就像我的值不初始化。所以最近怎麼樣。試圖從fragmentA中調用fragmentB方法並使用NPE
問題是在這裏,當我嘗試調用方法configureSettingsMenus位置在抽屜中單擊的項目。
result.setOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
ft.addToBackStack(null);
// settingsFragment.configureSettingsMenus(position);
result.closeDrawer();
// ft.add(settingsFragment, "settingsFragment");
if (settingsFragment != null && settingsFragment instanceof SettingsFragment) {
settingsFragment.configureSettingsMenus(position);
settingsFragment.show(ft, DIALOG_SETTINGS);
}
return true;
}
});
這裏是B片段
public void configureSettingsMenus(int position) {
switch (position) {
case TRADING_HISTORY:
settingsText.setText("fragment 0");
break;
case LEADER_BOARD:
settingsText.setText("fragment 1");
break;
case SPECIAL_OFFER:
settingsText.setText("fragment 2");
break;
case VIDEO_TUTORIALS:
settingsText.setText("fragment 3");
break;
case FAQ:
settingsText.setText("fragment 4");
break;
case CONTACT:
settingsText.setText("fragment 5");
break;
default:
break;
}
}
我初始化所有在Butterknife方法。像你看到你有settingsText我想爲每個選擇的位置設置文本。
我fragmentA
哪些錯誤了NPE上settingsText.setText in fragmentB
和settingsFragment.configureSettingsMenus(position)
?任何幫助approciate。
編輯:
Process: com.example.andrzej.forexapp, PID: 2329
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.example.andrzej.forexapp.activities.fragments.SettingsFragment.configureSettingsMenus(SettingsFragment.java:75)
at com.example.andrzej.forexapp.activities.fragments.MainGameFragment$2.onItemClick(MainGameFragment.java:156)
at com.mikepenz.materialdrawer.DrawerBuilder$5.onClick(DrawerBuilder.java:1716)
at com.mikepenz.materialdrawer.DrawerBuilder$5.onClick(DrawerBuilder.java:1690)
at com.mikepenz.fastadapter.FastAdapter$1.onClick(FastAdapter.java:492)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
發佈的logcat活動DrawerClickCallbacks .. – rafsanahmad007
你'settingsText'爲null。你應該再檢查一次。 –