在向上导航的对象引用上获取 null

Getting null on object reference for Up navigation

这似乎可行,但不确定我是否必须将它添加到每个 Activity?

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>

class 看起来像这样:

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;
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

在您的代码中,您使用的是 getActionBar(),而基础 class 是 ActionBarActivity。您应该改用上面的代码。

如果您使用的是支持库,即 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>

尝试在 AndroidManifest.xml

的 AcivityTag 中添加 Activity 的 ParentActivity
 <activity
        android:name=".Book"
        android:label="@string/book"
        android:parentActivityName="ParentActivity">

尝试在您的 oncreate 中添加以下代码

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);