gpt4 book ai didi

android - 从 fragment 在我的工具栏上设置字幕

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:20 33 4
gpt4 key购买 nike

我在使用 fragment 设置工具栏中的副标题时遇到了一些问题。我一直在 setSubTitle 处收到 Null Pointer Exception。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

getActivity().getActionBar().setSubtitle("About"); // NULL POINTER EXCEPTION here
}

将工具栏添加到宿主 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);
}
}

我的样式.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>

这是 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)

我是否必须在我的 Fragment Activity 中创建界面监听器并监听 fragment 的开始和停止以设置字幕,或者是否有更简单的方法从我的 fragment 在我的工具栏中设置字幕。

如果您需要查看我的更多代码,请告诉我。

干杯。

最佳答案

要使用工具栏和 Appcompat 21,您必须使用 AppCompatActivity并使用:

((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle("About");

关于android - 从 fragment 在我的工具栏上设置字幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880544/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com