这似乎可行,但不确定是否必须将其添加到每个活动中?

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>

10-08 19:42