Кнопка настройки активности вверх

У меня есть 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>

Я пытался добавить действие к onOptionsItemSelected за 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)'

1 ответ

Я полагаю, ваша база кода была сгенерирована Android Studio, потому что я столкнулся с той же проблемой. Вы можете добавить следующий код в настройки.

@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);
}

Это обеспечит работу кнопки вверх.

Другие вопросы по тегам