4

我有一个SettingsActivity应该有一个向上按钮链接回MainActivity. 该按钮出现,但单击时不执行任何操作。后退按钮工作正常。

AndroidManifest.xml

<activity
        android:name=".SettingsActivity"
        android:label="@string/title_activity_settings"
        android:parentActivityName=".MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myapp.MainActivity" />
</activity>

我尝试为onOptionsItemSelectedfor添加一个动作R.id.home,但没有运气。我也尝试添加getActionBar().setDisplayHomeAsUpEnabled(true);onCreate(),但它使应用程序崩溃并出现以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/com.example.myapp.SettingsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)'
4

1 回答 1

5

我想您的代码库是由 Android Studio 生成的,因为我遇到了同样的问题。您可以将以下代码添加到您的 SettingsActivity 中。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == android.R.id.home) {
        finish(); // or go to another activity
        return true;
    }
    return super.onOptionsItemSelected(item);
}

这将确保向上按钮有效。

于 2016-04-18T15:35:51.940 回答