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

Add icon to fragment actionbar and get reference to it

我没有自定义栏,我只是给actionbar设置了一个删除图标,但现在我需要给这个图标设置OnClickListener。如果没有自定义栏,我怎么能这样做呢?这可能吗?还有左边没有图标,可以设置在右边吗?

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

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

actionBar.setDisplayHomeAsUpEnabled(true);

然后你需要覆盖activity方法:

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

要在右侧创建一个项目,你需要创建自定义菜单,其实很简单。

是如何执行此操作的示例

您似乎想将 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);

    }
}