使用android.R.id.home-Android

时间:2018-10-23 19:19:34

标签: java android xml optionmenu

我正在尝试在选项菜单项单击中使用android.R.id.home:,但是它不能像往常一样工作,我有一个带有搜索框的菜单,并且我正在使用app:showAsAction="collapseActionView"。 / p>

我还使用了导航抽屉开关,并使用setDisplayHomeAsUp(true);

切换抽屉开关

可能是由于collapseActionView(在menu.xml中)或drawerToggle(在MainActivity.java中)导致我的android.R.id.home:MainActivity.java中不工作

请帮助我。

我的菜单

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <item
        android:icon="@drawable/ic_custom_search"
        android:id="@+id/options_menu_search"
        android:orderInCategory="0"
        android:title="Search"
        app:showAsAction="collapseActionView|always"
        android:textColor="@color/colorSystemGrey"
        app:actionViewClass="android.support.v7.widget.SearchView">
    </item>
</menu>

在选项菜单项上单击

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);
        switch (item.getItemId()) {
            case android.R.id.home:
                // do stuff
                break;
            default:
                break;
        }
        return true;
    }

2 个答案:

答案 0 :(得分:0)

在您的活动中也尝试设置setDisplayShowHomeEnabled

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

    ...

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
}

答案 1 :(得分:0)

在您的onCreate()中:

res = [i for i, v in enumerate(dlist) if v > 25]
# [1, 2, 3, 4, 5, 6, 14, 15, 16, 17, 18, 19]