2014-04-02 26 views
10

Google's document, getActionBar().setDisplayHomeAsUpEnabled(true) uyarınca yukarı tuşunu göstermek için gereklidir. Eclipse'deki sihirbazı kullanarak bir çıplak kemik etkinliği oluşturdum ve üst etkinliğini belirttim. Otomatik olarak oluşturulan kodda hiçbir getActionBar().setDisplayHomeAsUpEnabled(true) bulunamadı, ancak bu aktivite başlatıldığında yukarı düğmesi mevcut ve beklendiği gibi çalışıyor. Bu konuda biraz ışık tutabilir mi?Yukarı düğmesi neden setDisplayHomeAsUpEnabled() olmadan mevcut?

public class FooActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_foo); 

      //more code...  
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
      //more code... 
    } 

    @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(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

    /** 
    * A placeholder fragment containing a simple view. 
    */ 
    public static class PlaceholderFragment extends Fragment { 

     public PlaceholderFragment() { 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      //more code... 
      return rootView; 
     } 
    } 

} 

cevap

13
+0

Hızlı yanıt için çok teşekkürler. Bu, belgenin yanlış olduğu anlamına mı geliyor (örn. GetActionBar(). SetDisplayHomeAsUpEnabled (true) gereksizdir), veya yukarı tuşunu göstermek için böyle bir çağrının gerekli olduğu durumlar var mı? – Hong

+0

Ben buna "yanlış" demezdim, ama muhtemelen biraz daha açık olmak için yeniden düşünülmüş olabilir. Bir "parentActivityName" ekleme hakkında, "Sistem, Up ... gibi gezinme düzenlerini kolaylaştırabilmenizi sağlar" durumundadır. Ancak sizin durumunuzda 'ActionBar.setDisplayHomeAsUpEnabled' işlevini çağırmak gereksizdir. – adneal

+0

setDisplayHomeAsUpEnabled'ın gerekli olduğu bir durum var mı? Bunu soruyorum, çünkü bir ebeveynActivityName eklemenin, binlerce farklı Android cihaz modeli için yukarı tuşunu kullanmam için tek yapmam gereken şey olduğundan emin olmak istiyorum. Belgeyi birkaç kez okudum ve bana bir parentActivityName ekleme "ilk adım" (belgeden alıntı) ve ikinci adım setDisplayHomeAsUpEnabled çağırıyor izlenimi verir. Görünüşe göre 3 adım bile var. Belge ile ilgili sınırlı anlayışım için üzgünüm. – Hong

3

Acitivty Ben tüm olası aşağıda kombinasyonları ve bunların sonuçlarını açıklandığı senin bir parentActivityName belirtin: Her iki android:parentActivityName=".MyActivity var

  1. ve bu getActionBar().setDisplayHomeAsUpEnabled(true); - geri düğmesi belirir ve işe yarıyor;
  2. Sadece bu android:parentActivityName=".MyActivity - geri düğmesi görünür ve yukarıdaki gibi çalışır;
  3. Sadece bu getActionBar().setDisplayHomeAsUpEnabled(true); modeline sahipsiniz, - geri düğmesi görünür ancak üzerine tıklamak bir yere gitmez;
  4. Bu getActionBar().setDisplayHomeAsUpEnabled(false); numaralı belgede, false olarak parametreyi ayarladığınızda, bu android:parentActivityName=".MyActivity bildirime sahip olsanız bile, geri düğmesi görünmez.

Bu, arkadaşımın işleyiş şeklidir.

İlgili konular