BaRud
BaRud

Reputation: 3218

Activity Back button is not doing anything

In my MainActivity I have defined:

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
//      int id = item.getItemId();
    switch (item.getItemId()) {
      case R.id.menu_settings:
        Toast.makeText(getApplicationContext(), "Settings menu clicked", Toast.LENGTH_LONG).show();
        Intent intent = new Intent(this, SettingsActivity.class);
        startActivity(intent);
        return true;
      case R.id.menu_location:
      startLocationUpdates();
      setupViewPager();
        return true;
      default:
        return super.onOptionsItemSelected(item);
    }
  }

The Settings Activity is the default New->Activity->Settings created by Android studio as:

public class SettingsActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings_activity);
    getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.settings, new SettingsFragment())
        .commit();
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
      actionBar.setDisplayHomeAsUpEnabled(true);
    }
  }

  public static class SettingsFragment extends PreferenceFragmentCompat {
    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
      setPreferencesFromResource(R.xml.root_preferences, rootKey);
    }
  }
}

Now, the problem is the back button is actually not doing anything, i.e. clicking the back button on SettingsActivity is not taking me to the MainActivity.

What should I do?

Upvotes: 0

Views: 61

Answers (2)

Natig Babayev
Natig Babayev

Reputation: 3296

Try setting parent activity in AndroidManifest.xml:

 <activity
    android:name=".SettingsActivity"
    android:parentActivityName=".MainActivity">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".MainActivity"/>
</activity>

Upvotes: 1

Wini
Wini

Reputation: 1986

try implementing on Settings Activity

 @Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if (item.getItemId() ==android.R.id.home) {
        finish();
    }
    return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
    super.onBackPressed();
}

Upvotes: 0

Related Questions