需要帮助找出当我点击"设置"按键

时间:2017-10-03 01:14:56

标签: android settings toolbar android-monitor

我在Android Studio" Android Monitor"

中收到以下错误

有很多笨蛋,但它实质上是说错误的原因如下:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual  method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a  null object reference
                                                                                 at com.example.robthoms.photopop.SettingsActivity.onCreate(SettingsActivity.java:28)

我试图让设置在工具栏上运行,我从以下代码获得了代码:

https://www.androidhive.info/2017/07/android-implementing-preferences-settings-screen/

如果您点击此链接,您会看到我尝试使用的SettingsActivity.java的完整代码,但是当我点击"设置"在工具栏中,App关闭。

应用关闭的SettingsActivity有什么问题?

我的AndroidManifest.xml:

enter image description here

我的styles.xml

enter image description here

在类中隐藏ActionBar,而styles.xml包含Light.DarkActionBar

    ActionBar bar  = getSupportActionBar () ;
    if       (bar != null) bar.hide () ;

2 个答案:

答案 0 :(得分:0)

问题是由于您的活动没有任何ActionBar引起的。在Android清单中,请确保您的活动使用的主题为ActionBar。确保它没有NoActionBar之类的内容。如果您的活动未使用任何主题,请检查AppTheme中的styles.xml

一种可能的解决方案是在清单中使用它:

<activity
    android:name=".SettingsActivity"
    android:theme="@style/Theme.AppCompat.Light" />

另一种方式:

在styles.xml中添加新样式:

<style name="AppTheme.ActionBar" parent="AppTheme">
    <item name="windowActionBar">true</item>
    <item name="windowNoTitle">false</item>
</style>

在清单中使用新样式:

<activity
    android:name=".SettingsActivity"
    android:theme="@style/AppTheme.ActionBar" />

答案 1 :(得分:0)

你的风格主题是noactionbar 1.如果您想要一个动作栏,请使用包含主题的动作栏 要么 2.您还可以制作类似于操作栏的自定义视图