如何在工具栏图标上实现点击事件?

8

我希望在点击工具栏图标时切换活动。

这里输入图片描述

我的代码:

Toolbar toolbar = (Toolbar) findViewById(R.id.mytoolbar);
setSupportActionBar(toolbar);

getSupportActionBar().setIcon(R.mipmap.ic_launcher);

并且希望可以在点击时进行处理,但是这种方法没有生效:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent i = new Intent(MainActivity.this,SecondActivity.class);
            startActivity(i);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

与 XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rel_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.project.www.simpleproject.activity.MainActivity">

<android.support.v7.widget.Toolbar
    android:id="@+id/mytoolbar"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:theme="@style/AppToolbar">

</android.support.v7.widget.Toolbar>

能否做到这一点?如果可以,请告诉我,谢谢。


在提问之前,请先尝试解决方案。 - Shubham Shukla
我尝试了,但它没有起作用。 - Mayur Kharche
什么没有起作用? - Shubham Shukla
仍然无法工作。。 - Mayur Kharche
还有 getSupportActionBar().setDisplayHomeAsUpEnabled(true); - John Joe
显示剩余2条评论
2个回答

7
您也可以不使用工具栏来实现此功能。
final ActionBar actionBar = getSupportActionBar();
 actionBar.setDisplayHomeAsUpEnabled(true);
 actionBar.setHomeAsUpIndicator(R.mipmap.ic_launcher);

然后
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent i = new Intent(MainActivity.this,SecondActivity.class);
            startActivity(i);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

2
已解决,谢谢。 - Mayur Kharche
是的,我用HomeAsUpIndicator替换了图标,现在它可以正常工作了。 - Mayur Kharche

0

使用此代码与您的getSupportActionBar一起使用:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接