2015-12-11 13 views
6

Używam Android Studio, więc utworzyłem funkcję SettingsActivity za pomocą kreatora i mam problem z tym, że nie można nawigować z tej aktywności z powrotem do głównego działania za pomocą strzałka "w górę" na pasku czynności.Nawigacja z powrotem na aktywność związaną z ustawieniami

Konfiguracja z Actionbar wygląda następująco:

private void setupActionBar() { 
    ActionBar actionBar = getSupportActionBar(); 
    if (actionBar != null) { 
     // Show the Up button in the action bar. 
     actionBar.setDisplayShowHomeEnabled(true); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
    } 
} 

Actionbar nie jest null btw.
A parentActitvityName jest w AndroidManifest:

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

Jednakże, kliknięcie na strzałkę nic nie robi. Nie wyzwoli się nawet onOptionsItemSelected.

Wygląda na to, że to dokładnie ten sam problem, Action bar setDisplayHomeAsUpEnabled not working on ICS, ale nawigacja z poziomu szczegółowego do działania przeglądania działa dobrze w tej samej aplikacji. Ponadto ustawić MinSDK do 15 oraz TargetSDK do 23.

Odpowiedz

16

zastąpić metodę onOptionsItemSelected na swojej działalności i uczynić go jak ten

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      // Respond to the action bar's Up/Home button 
      case android.R.id.home: 
       super.onBackPressed(); 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
+0

Metoda nie zostanie wywołana w działaniu main-settings-activity. – Daniel

+0

można zastąpić metodę. Przy okazji edytuję swoją odpowiedź, skopiuję ją i wkleja na twoją aktywność –

+0

tak, to jest to, co już mam, ale kiedy klikam na "up" ta metoda nie jest wywoływana. – Daniel

2

Vspallas odpowiedź jest poprawna. Błąd był po mojej stronie. Miałem metodę onOptionsItemSelected w preferenceFragment, a nie w Activity. Mea culpa.

+1

Możesz wywołać metodę getActivity(). OnBackPressed() z fragmentu, aby uzyskać ten sam efekt. – ravindu1024

Powiązane problemy