Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java getActionBar()在actionBar中返回NULL_Java_Android_Object_Android Studio_Nullpointerexception - Fatal编程技术网

Java getActionBar()在actionBar中返回NULL

Java getActionBar()在actionBar中返回NULL,java,android,object,android-studio,nullpointerexception,Java,Android,Object,Android Studio,Nullpointerexception,我目前正在android studio中创建actionBar,我已经创建了动作按钮,我的目标是每次单击按钮时都有一个下拉菜单 在我的菜单_main.xml中,我添加了搜索和帮助项目: <item android:id="@+id/menu_search" android:icon="@drawable/ic_action_search" android:title="@string/menu_search"

我目前正在android studio中创建
actionBar
,我已经创建了动作按钮,我的目标是每次单击按钮时都有一个下拉菜单

在我的菜单_main.xml中,我添加了搜索和帮助项目:

        <item
        android:id="@+id/menu_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/menu_search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="collapseActionView|ifRoom"/>

        <item android:id="@+id/action_help"
        android:icon="@drawable/ic_action_help"
        android:title="@string/action_help"
        app:showAsAction="ifRoom"/>
在我的
onOptionsItemSelected()
方法中,我添加了这样一种情况:每次单击此按钮时,它都会调用一个函数。这是我的密码:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        switch (item.getItemId()) {
            case R.id.action_help:
                helpMessage();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

        private void helpMessage() {
            //Toast.makeText(this, "Location button pressed", Toast.LENGTH_SHORT).show();
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_dropdown_item, actions);
            System.out.println("HERE: " + getActionBar());
            getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
            ActionBar.OnNavigationListener navigationListener = new ActionBar.OnNavigationListener() {
                @Override
                public boolean onNavigationItemSelected(int itemPosition, long itemId) {
                    Toast.makeText(getBaseContext(), "You selected : " + actions[itemPosition], Toast.LENGTH_SHORT).show();
                    return false;
                }
            };
            getActionBar().setListNavigationCallbacks(adapter, navigationListener);
        }
@覆盖
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
开关(item.getItemId()){
案例R.id.action\u帮助:
帮助信息();
返回true;
违约:
返回super.onOptionsItemSelected(项目);
}
}
私有void帮助消息(){
//Toast.makeText(此“位置按钮按下”,Toast.LENGTH_SHORT).show();
ArrayAdapter=新的ArrayAdapter(getBaseContext(),android.R.layout.simple\u微调器\u下拉菜单\u项,操作);
System.out.println(“此处:+getActionBar());
getActionBar().setNavigationMode(ActionBar.NAVIGATION\u MODE\u列表);
ActionBar.OnNavigationListener navigationListener=新建ActionBar.OnNavigationListener(){
@凌驾
公共布尔值onNavigationItemSelected(int-itemPosition,long-itemId){
Toast.makeText(getBaseContext(),“您选择:”+actions[itemPosition],Toast.LENGTH\u SHORT.show();
返回false;
}
};
getActionBar().setListNavigationCallbacks(适配器、navigationListener);
}
当我运行程序时,我的应用程序会崩溃,我会

NullPointerException:尝试调用虚拟方法“void” 空对象上的android.app.ActionBar.setNavigationMode(int)“” 参考文献

它指向
getActionBar()
,它是空的。
有什么想法吗?

使用
getSupportActionBar()
而不是
getActionBar()
。此外,活动的主题应扩展为
主题。AppCompat

使用
getSupportActionBar()
而不是
getActionBar()
。此外,活动的主题应扩展为
主题。AppCompat

使用
getSupportActionBar()
而不是
getActionBar()
。此外,活动的主题应扩展为
主题。AppCompat

使用
getSupportActionBar()
而不是
getActionBar()
。另外,您活动的主题应该扩展为
主题。AppCompat

我总是有这个错误。。。。 我找到了一个解决方案,我把它放到我的
风格中
它将是有效的,
getActionBar()
将不再为空

<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
false
真的

希望这对你有所帮助

我总是有这样的错误。。。。 我找到了一个解决方案,我把它放到我的
风格中
它将是有效的,
getActionBar()
将不再为空

<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
false
真的

希望这对你有所帮助

我总是有这样的错误。。。。 我找到了一个解决方案,我把它放到我的
风格中
它将是有效的,
getActionBar()
将不再为空

<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
false
真的

希望这对你有所帮助

我总是有这样的错误。。。。 我找到了一个解决方案,我把它放到我的
风格中
它将是有效的,
getActionBar()
将不再为空

<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
false
真的
希望这对你有所帮助

我想你应该 1.检查主题

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

2.检查您的活动类,它是extend AppcombatActivity或ActionBarActivity

所以,我希望它对你有用

我想你应该 1.检查主题

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

2.检查您的活动类,它是extend AppcombatActivity或ActionBarActivity

所以,我希望它对你有用

我想你应该 1.检查主题

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

2.检查您的活动类,它是extend AppcombatActivity或ActionBarActivity

所以,我希望它对你有用

我想你应该 1.检查主题

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

2.检查您的活动类,它是extend AppcombatActivity或ActionBarActivity



因此,我希望它对您有用

谢谢!但不幸的是,我已经试过了,但没有成功。应用程序仍然崩溃。你知道为什么
getActionBar()
返回空值吗?尝试扩展AppCompatActivity,也许它会帮助你。我刚刚启动了它,没有崩溃,活动从
appcompativity
getSupportActionBar()
扩展,我将扩展更改为
appcompativity
并使用了
getSupportActionBar()
,但在我的
setListNavigationCallbacks()
中,我需要强制转换
导航侦听器,所以我铸造了它。还有
java.lang.ClassCastException:com.example.marananald.finalactionbar.MainActivity$1不能强制转换为android.support.v7.app.ActionBar$OnNavigationListener
实际上,此方法在API级别21中已被弃用,因此,最好使用最新的导航模式。但是,如果您仍然希望使用此方法,则应该为此方法提供正确的导航侦听器。您只需使您的活动实现ActionBar.OnNavigationListener界面,并实现正确的方法,然后将
MainActivity传递给您。此
作为导航Listener谢谢!但不幸的是,我已经试过了,但没有成功。应用程序仍然崩溃。你知道为什么
getActionBar()
返回空值吗?尝试扩展AppCompatActivity,也许它会帮助你。我刚刚启动了它,没有崩溃,活动从
appcompativity
扩展到
getSupportActionBar()
我将扩展更改为
appcompativity
a