gpt4 book ai didi

java - getActionBar() 在 actionBar 中返回 NULL

转载 作者:行者123 更新时间:2023-12-02 04:22:09 25 4
gpt4 key购买 nike

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

在我的menu_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"/>

在我的MainActivity.java中,我为下拉列表添加了字符串:

    String[] actions = new String[] {
"Bookmark", "Subscribe", "Share", "Like"
};

在我的 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);
}

当我运行该程序时,我的应用程序将崩溃,并且我得到

NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setNavigationMode(int)' on a null object reference

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

最佳答案

我总是遇到这个错误......我找到了一个解决方案,将其放入我的 Style 中,它将起作用,并且 getActionBar() 将不再为 null...

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

希望这对你有帮助

关于java - getActionBar() 在 actionBar 中返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643310/

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