2015-12-11 30 views
6

Android Studio'yla oynuyorum, böylece sihirbazı kullanarak bir SettingsActivity oluşturdum ve bu ayar etkinliklerinden ana aktiviteye geri dönmenin mümkün olmadığına dair problemle karşılaşıyorum. Actionbar'da "yukarı" ok.Ayarlar etkinliğinden geri gitme

İşlem Çubuğu kurulumu şu şekildedir:

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

İşlem Çubuğu btw boş değil.
Ve parentActitvityName AndroidManifest ayarlanır:

<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> 

Ancak oka bir tıklama hiçbir şey yapmaz. OnOptionsItemSelected bile tetiklenmez.

Bu, tam olarak aynı sorun olan Action bar setDisplayHomeAsUpEnabled not working on ICS gibi görünüyor, ancak aynı uygulamada bir genel bakış etkinliğiyle bir ayrıntıdan geriye doğru geziniyor. Üstelik senin etkinliğine 23.

cevap

16

geçersiz kılma için 15 ve TargetSDK için onOptionsItemSelected yöntemi MinSDK set ve doğru bu

@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

Yöntem, ana ayar etkinliği etkinliğinde çağrılmadı. – Daniel

+0

yöntemini geçersiz kılabilirsiniz. Bu arada cevabımı düzenleyeceğim, kopyaladığınız ve aktivitenize yapıştırdığınız –

+0

yep, bu zaten sahip olduğum ama "yukarı" tıkladığınızda bu yöntem çağrılmıyor. – Daniel

2

Vspallas cevap gibi yapmak. Hata benim tarafımdaydı. Aktivitede değil, preferenceFragment içinde bir onOptionsItemSelected yöntemi vardı. Mea Culpa.

+1

çalıştı. GetActivity(). OnBackPressed() öğesini parçanın içinden aynı etkiyi arayabilirsin. – ravindu1024