Setting a subtitle on my Toolbar from a fragment
21,246
To use the Toolbar and the Appcompat 21, you have to use an AppCompatActivity and use:
((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle("About");
Comments
-
DrkStr almost 2 years
I am having some trouble setting the sub-title in my Toolbar from my fragment. I keep getting a Null Pointer Exception at the setSubTitle.
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getActivity().getActionBar().setSubtitle("About"); // NULL POINTER EXCEPTION here }
Adding the toolbar to the host activity:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); if (toolbar != null) { Log.w("Rakshak", "Toolbar is not null"); setSupportActionBar(toolbar); } }
My style.xml
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">#1A7E99</item> <item name="colorPrimaryDark">#16657A</item> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> </style>
Here is the Logcat:
11-12 11:24:15.580: E/AndroidRuntime(22183): FATAL EXCEPTION: main 11-12 11:24:15.580: E/AndroidRuntime(22183): java.lang.NullPointerException 11-12 11:24:15.580: E/AndroidRuntime(22183): at com.driverdesignstudio.drvr.About.onActivityCreated(About.java:63) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.app.Fragment.performActivityCreated(Fragment.java:1703) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.app.BackStackRecord.run(BackStackRecord.java:694) 11-12 11:24:15.580: E/Androidenter code hereRuntime(22183): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.os.Handler.handleCallback(Handler.java:800) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.os.Handler.dispatchMessage(Handler.java:100) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.os.Looper.loop(Looper.java:194) 11-12 11:24:15.580: E/AndroidRuntime(22183): at android.app.ActivityThread.main(ActivityThread.java:5371) 11-12 11:24:15.580: E/AndroidRuntime(22183): at java.lang.reflect.Method.invokeNative(Native Method) 11-12 11:24:15.580: E/AndroidRuntime(22183): at java.lang.reflect.Method.invoke(Method.java:525) 11-12 11:24:15.580: E/AndroidRuntime(22183): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 11-12 11:24:15.580: E/AndroidRuntime(22183): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 11-12 11:24:15.580: E/AndroidRuntime(22183): at dalvik.system.NativeStart.main(Native Method)
Do I have to make interface listeners and listen to the fragment start and stop in my Fragment Activity to set subtitles or is there an easier way to set subtitles in my toolbar from my fragments.
Let me know if you need to see any more of my code.
Cheers.
-
DrkStr over 9 yearsSame error. Null Pointer Exception in the setTitle().