更改 ActionBar 图标
changing ActionBar icon
我有一个自定义的操作栏,我想在 Main Activity 上添加导航抽屉图标,点击它抽屉会 open/close 而在其他活动上我想要一个后退箭头,点击它我去回到 parent activity。
我已经为抽屉图标做了这个并且它有效,
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);
}
}
但一次只能做一件事情,如何才能同时做这件事?
在其他活动中(需要后退箭头的地方),您应该在 AndroidManifest.xml
文件中定义 parentActivityName
以定义按下后退箭头时应导航到哪个 activity。
<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>
在这段activityjava代码中,你应该在onCreate
回调方法中编写如下代码。
ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
并且在那个activity的onOptionsItemSelected
回调方法中,你还需要下面的代码来return回到之前的activity.
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
我有一个自定义的操作栏,我想在 Main Activity 上添加导航抽屉图标,点击它抽屉会 open/close 而在其他活动上我想要一个后退箭头,点击它我去回到 parent activity。 我已经为抽屉图标做了这个并且它有效,
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);
}
}
但一次只能做一件事情,如何才能同时做这件事?
在其他活动中(需要后退箭头的地方),您应该在 AndroidManifest.xml
文件中定义 parentActivityName
以定义按下后退箭头时应导航到哪个 activity。
<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>
在这段activityjava代码中,你应该在onCreate
回调方法中编写如下代码。
ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
并且在那个activity的onOptionsItemSelected
回调方法中,你还需要下面的代码来return回到之前的activity.
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}