2015-06-09 28 views
7

MainActivity dışındaki tüm etkinlikler için bir Geri Düğmesi uyguladım. Benim Sorunum, o da MainActivity içinde bir Geri Düğmesi var. bende MainActivity bir Arka Düğmesi olsun NedenGeri Düğme ActionBar at MainActivity

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/levox" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".ListViewActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".ListTasksActivity" 
     android:label="@string/projekte" 
     android:parentActivityName=".ListViewActivity"> 
     </activity> 
    <activity android:name=".ListSingleTaskActivity" 
     android:label="@string/tasks" 
     android:parentActivityName=".ListTasksActivity"> 
    </activity> 
    <activity android:name=".menu_main_Activity"/> 
</application> 

:

import android.support.v4.app.NavUtils; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     getActionBar().setDisplayHomeAsUpEnabled(true); 
     [...] 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    switch (item.getItemId()) { 
     case android.R.id.home: 
      NavUtils.navigateUpFromSameTask(this); 
      return true; 
     case R.id.ueber: 
      startActivity(new Intent(this, menu_main_Activity.class)); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

AndroidManifest:

Umarım doğru sınıf ithal ettik?

+1

bu setDisplayHomeAsUpEnabled (false) değerini değiştirin, bunun yerine uygulamadan çıkmak için (uygulamada kullanmak istediğiniz) uygulama simgesini kullanın veya getSupportActionBar() yöntemini kullanarak başka bir simge ayarlayın. SetHomeAsUpIndicator (R.drawable.ic_menu); –

+0

çok kolay teşekkür ederim ... Diğer etkinliklerde arka tuşa tıklarsam neden uygulamam çöküyor? – korunos

+0

Teşekkür ederim ama getSupportActionBar() – korunos

cevap

7

İlk soru: "Back-Button" ile ne demek istiyorsun?

  • Altta her Android aygıtında bulunan düğmeyi mi kastediyorsunuz? Bunu devre dışı bırakamazsın. Ama aslında Android-evrende "Back-Button" olarak adlandırılır. Bazen donanımın bir parçası bile!
  • Uygulamanızın sol üstündeki App-Simgesinin hemen yanında sola yönlendiren küçük bir ok ile gösterilen düğmeyi mi kastediyorsunuz? Bu düğmeye Android-evreninde "Yukarı Düğme" denir. Bu seferki çünkü kodunuzda bu hattın sizin MainActivity gösterilir: yöntemle

    protected void onCreate(Bundle savedInstanceState) 
    

    Yani bu hat götürmek gerektiğini de

    getActionBar().setDisplayHomeAsUpEnabled(true); 
    

    . sadece düğmeye görünümünü aynı zamanda işlevselliği bunun devre dışı bırakmak için bu kod parçası bakmak zorunda: Burada

    switch (item.getItemId()) { 
    case android.R.id.home: 
        NavUtils.navigateUpFromSameTask(this); 
        return true; 
    case R.id.ueber: 
        startActivity(new Intent(this, menu_main_Activity.class)); 
        return true; 
    } 
    

    , sen parçasını kaldırmak zorunda

    case android.R.id.home: 
        NavUtils.navigateUpFromSameTask(this); 
        return true; 
    

DÜZENLEME: Ama gerçekten "Yukarı Düğme" görünür içeriden yapmak istiyorsanız Aktivite, sen

    • kodu onCreate() içinde

      getActionBar().setDisplayHomeAsUpEnabled(true); 
      

      belirlemek zorunda - o Faaliyet yöntemi!

    • örneğin, Manifest.xml (Zaten ne yaptığınızı) bir üst-Aktivite sağlar: Aktivite içine part

      case android.R.id.home: 
          NavUtils.navigateUpFromSameTask(this); 
          return true; 
      

      android:parentActivityName=".ListViewActivity" 
      
    • ve koyun hangi "Yukarı-Düğme" ye sahip olmalı.

    Başka bir şey diyorsan, sorunuzu belirtiniz ve daha fazla kod :)

    Bazı yararlı linkler sağlar: "Yukarı Düğme", okumak

    okumak 0
  • +0

    Katılıyorum, teşekkürler, bu çözüm benim için çalıştı. Bazen geç geceler, zaman kazanmak için diğer sınıflardan kopyaladığınız her şeyi unutursunuz. LOL –

    İlgili konular