Android MenuItem';如果菜单项showAsAction=";“始终”;

Android MenuItem';如果菜单项showAsAction=";“始终”;,android,menuitem,android-menu,Android,Menuitem,Android Menu,我对菜单项有点问题 我的菜单中有一个搜索视图,我在我的onprepareoptions菜单中的项目上设置了OnMenuItemClickListener 我的菜单xml:showAsAction属性设置为“始终” 但是,如果我点击搜索图标,什么都不会发生,祝酒词也不会出现 奇怪的是,如果我设置showAsAction=“always | collapseActionView”,if将起作用,但搜索图标不见了,取而代之的是“搜索”文本 它起作用了,吐司被展示出来了 但图标已经不见了 **

我对菜单项有点问题

我的菜单中有一个搜索视图,我在我的
onprepareoptions菜单中的项目上设置了
OnMenuItemClickListener

我的菜单xml:showAsAction属性设置为“始终”

但是,如果我点击搜索图标,什么都不会发生,祝酒词也不会出现

奇怪的是,如果我设置showAsAction=“always | collapseActionView”,if将起作用,但搜索图标不见了,取而代之的是“搜索”文本

它起作用了,吐司被展示出来了

但图标已经不见了

********************编辑****************************************


您的菜单使用了错误的语法。请用此代码替换您的菜单充气机/处理程序代码

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.yourActivity_menu, menu);
    return true;
}

@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.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.search) {
        //Handle the onClick with Toast over here.
        //IF you have multiple options then replace if with a switch() statement
        return true;
    }

    return super.onOptionsItemSelected(item);
}
就图标而言,您已经通过添加android:icon=“@drawable/you\u icon\u HERE”在xml文件中指定了icon属性

编辑:看看这个,你应该保留android:showAsAction=“collapseActionView | ifRoom”让它工作。现在唯一需要做的更改是在xml中添加一个android:icon属性

<item android:id="@+id/search"
      android:title="@string/search_title"
      android:icon="@drawable/ic_search"
      android:showAsAction="collapseActionView|ifRoom"
      android:actionViewClass="android.widget.SearchView" />


或者android.widget.v7支持,具体取决于您希望支持的android版本

另外,您能否告诉我这是一个工具栏还是android提供的默认操作栏?请查看编辑。嗨,瓦伦,我使用工具栏替换了默认操作栏。我试过你的方法,但也不管用。。。根本不调用OnOptions ItemSelected()方法。是因为我使用了toolbar吗?toolbar toolbar=(toolbar)findViewById(R.id.toolbar);设置支持操作栏(工具栏);toolbar.setHomeUpEnabled();添加这些行并向我展示你的onCreate()的初始行嗨,Varun,我更新了我的文章中的代码。感谢您添加if(getSupportActionBar!=null){setHomeButtonEnabled(true)}以消除null指针错误。现在可以用了吗?您还可以通过编程方式更改初始图标、主页按钮图标、标题和添加字幕;而且它还不能工作。。。。