2010-05-05 18 views
10

çalışmaz aktivite böyle bir şey kullanmadan gösterildikten sonra openOptionsMenu çağırmak için başka bir yolu var mı:Android - openOptionsMenu onCreate

 
new Handler().postDelayed(new Runnable() { 
      public void run() { 
       openOptionsMenu(); 
      } 
     }, 1000); 

Referans: http://groups.google.com/group/android-beginners/browse_frm/thread/b10a8ea840c07725/1ce48bb147a3ed1a?#1ce48bb147a3ed1a

DÜZENLEME: Bunu takdir ediyorum böyle örnek:

 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Now I guess something like Window.Callback.onAttachedToWindow(...) should be done? 
} 
+0

çözüm gerçekten oldukça kırılgandır O – Casebash

cevap

21

tekrar Activity baktım ve o yöntemietti, API düzeyi 5'ten beri Window.Callback'dan devralınmıştır. Bu düzeyi kullanıyorsanız, bu yöntemi Activity'unuzda geçersiz kılmanız yeterlidir.

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    openOptionsMenu(); 
} 

bir versiyonunu öncesinde 5'e kullanıyorsanız, o zaman bunun yerine onAttachedToWindow method in View geçersiz kılmak gerekir. View kodunuzda oluşturulmuşsa, bu çok kolaydır. XMl'de oluşturulmuşsa, o zaman o kadar da zor değildir - instructions here'u faydalı bulmalısınız. Bu geçersiz kılma eklemek gereken yerde

+0

Ve Aktivite olarak onAttachedToWindow yok? – kape123

+1

@ kape123: Ek bilgi ekledim. Umarım bu yardımcı olur – Casebash

+0

Bana tam bir örnek verebilir misiniz? Şimdiden teşekkürler! – kape123

-1

Çözümümün

//Open menu manually from code 
    Timer timing = new Timer(); 
    timing.schedule(new TimerTask() { 

       /** 
       * {@inheritDoc} 
       */ 
       @Override 
       public void run() { 

        runOnUiThread(new Runnable() { 

         @Override 
         public void run() { 
          openOptionsMenu(); 
         } 
        }); 

       } 
      }, 1000); 
+0

... Bu daha önce – kape123

+0

soruma yazdığım kodun daha kötü versiyonu, denediniz mi? Piyasada kendi uygulamasında kullanıyorum. – RubyDeveloper

+0

Özellikle başlangıçta geri arama özelliğini kullanabilmeniz durumunda, başlatma/yükleme sırasında zamanlayıcı tabanlı zamanlamayı kullanmak genellikle kötü bir uygulamadır. – ohaleck

İlgili konular