更改ActionBar图标

时间:2016-12-17 07:40:14

标签: android android-actionbar

我有一个自定义的操作栏,我想在主要活动上添加导航抽屉图标,通过点击它将打开/关闭抽屉和其他活动我想要一个后退箭头,点击它我回到父活动。 我已经为抽屉图标做了这个,它可以工作,

toolbar.setNavigationIcon(R.drawable.ic_menu_black_24dp);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

对于后退箭头我试过这个

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

但是一次只能运行一件事,两者如何运作?

1 个答案:

答案 0 :(得分:0)

在其他活动中(您需要后退箭头),您应该在parentActivityName文件中定义AndroidManifest.xml,以定义按下后退箭头时应导航的活动。

<activity
        android:name=".activities.ArticleDetailActivity"
        android:parentActivityName=".activities.ArticlesActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.activities.ArticlesActivity" />
</activity>

在此活动 java代码中,您应该在onCreate回调方法中编写以下代码。

ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
      actionBar.setDisplayHomeAsUpEnabled(true);
}

活动onOptionsItemSelected回调方法中,您还需要以下代码才能返回上一个活动。

public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();

        switch (id) {
            case android.R.id.home:
                onBackPressed();
                return true;
        }

        return super.onOptionsItemSelected(item);
}
相关问题