这似乎可行,但不确定是否必须将其添加到每个活动中?
android:theme="@style/Theme.AppCompat"
以及使用
ActionBarActivity
扩展类这是我在清单中所做的:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.shmira.shmira.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Book"
android:theme="@style/Theme.AppCompat"
android:label="Shmira" >
</activity>
该类如下所示:
public class Book extends ActionBarActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.book);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar actions click
switch (item.getItemId()) {
// lets user travel back to where they came from
case android.R.id.home:
finish();
return true;
最佳答案
如果您使用的是支持库,即ActionBarActivity
在调用setContentView
之后添加以下行:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
如果您不使用支持库,即
Activity
,则只需将getSupportActionBar()
更改为getActionBar()
。,不要忘记将android:theme="@style/Theme.AppCompat"
添加到AndroidManifest.xml
要返回
MainActivity
而不是向上浏览堆栈,请像下面这样将ActivityA定义为AndroidManifest.xml
中ActivityB的父级: <activity
android:name=".Book"
android:label="Shmira">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.shmira.shmira.MainActivity" />
</activity>