将图标添加到片段操作栏并获取对它的引用

时间:2016-12-26 15:51:22

标签: android android-actionbar onclicklistener toolbar

我没有自定义栏,我只是在操作栏上设置了删除图标,但现在我需要将OnClickListener设置为此图标。如果没有自定义栏,我怎么能这样做呢?左边的图标也不是左边的,我可以在右边设置吗?

activity.getSupportActionBar().setIcon(R.drawable.ic_delete);

我使用导航抽屉,当我使用自定义栏时,切换图标绝望。

2 个答案:

答案 0 :(得分:0)

actionBar.setDisplayHomeAsUpEnabled(true);

然后你需要覆盖活动方法:

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

要在右侧创建项目,您需要创建自定义菜单,实际上,它很简单。

Here是如何执行此操作的示例

答案 1 :(得分:0)

您希望将ActionBar的主页按钮设置为删除按钮。我建议不要这样做,因为在我看来这是一个糟糕的设计决定。此外,您还希望在右侧显示按钮,可以使用菜单以更直观的方式完成。

请查看添加ActionBar操作here

的官方文档

基本上,您需要添加XML菜单资源并声明您的操作:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_delete"
        android:icon="@drawable/ic_delete"
        android:title="@string/action_delete"
        app:showAsAction="always"/>

</menu>

然后在您的Activity中覆盖OnOptionsItemSelected方法:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_delete:
            // Do your stuff here
            return true;

        default:
            return super.onOptionsItemSelected(item);

    }
}