SORU
16 Ocak 2009, Cuma


Android: bir etkinlik dönüşü Yakalama

Başlatma yeni etkinlikleri ile ilgili bir sorum var. Bu aşağı kaynar. Bir görünüm 3 sekme var

A) contains gMap activity
 B) camera activity
 C) some random text fields.

Gereği uygulama Portre modunda çalışır.

Tüm sekmeleri 3 w/ beklendiği gibi Kamera Önizleme Yüzey hariç (B) iş. 90 derece döndürülür. Onlar sadece doğru yapmak için bir yol etrafında tüm sekmeleri atar, ve oldukça kullanışsız olan manzara için app ayarlayın.

Benim çözüm şu : değiştirin

boş bir düzenli aktivite ile benim kamera aktivite w/ hariç

Intent i = new Intent(this,CameraActivity.class);
    startActivity(i);

Bu benim CameraActivity başlattı. Gayet iyi çalışıyor. Yapmam gereken bir çizgisel düzen ve vardır 3 fotoğraf gibi görünen gerçek sekmeler, böylece ben denemek ve taklit işlem sekmeleri ise dönen ekran için yatay tutun ve görsel olarak portresi. Kullanıcı resimleri(düğmeler) bir sonraki sekmesini görüntülemek için. Bu benim sorunum. Benim 'kamera etkinlik' dönen 'boş etkinlik benim görüntüden desiered sekmesini tıklatın için yorumlanmış olması gereken yerde.' sekmesi, çıkış gerekir

Ana şey, döndüğünde bir sekme altında (siyah) boş bir sayfa döndürür. (çünkü 'boş'). Nasıl iade etkinlik, aktivite olarak adlandırılan bu sayfaya yakalamak, ve onlar yapıldı bakalım ne o zaman?

Sahte sekmeleri (resimler) kamera etkinliği çıkmak için tıkladım olmak için cevap bir onclicklistener ayarlayabiliyorum. Çıkışta sekmesini döndüğün yere kadar güncellemelidir. herhangi bir Öneriniz var mı?

Teşekkürler

CEVAP
16 Ocak 2009, Cuma


İstediğiniz gibi davranır, böylece workround çözmek için nasıl cevap odaklanacağım.

Eylemler içinde başka bir Aktivite üzerinde gerçekleştirilen yakalamak için üç adım gerektirir.

İkincil Faaliyet (kamera Aktivite') startActivity yerine startActivityForResult kullanarak bir subactivity. başlatma

Intent i = new Intent(this,CameraActivity.class);    
startActivityForResult(i, STATIC_INTEGER_VALUE);

İçinde subactivity (kamera Aktivite) yerine, sadece kapanış Etkinliği ne zaman bir kullanıcı tıklama farklı sekme görüntü, yeni bir Niyet vardır ve dizin sekmesini görüntülemek için ne zaman geri dönmek için ana uygulamayı kullanarak ekstra paket. O ana geri geçmek setResult önce finish kamera arama Faaliyeti yakınlar.

resultIntent = new Intent(null);
resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, tabIndexValue);
setResult(Activity.RESULT_OK, resultIntent);
finish();

Son adım arama Faaliyeti, onActivityResult kamera aktiviteden geri aramaları dinlemek için geçersiz kılar. Görüntüleme olmalıdır sekme dizini belirlemek için döndü Niyeti ekstra olsun.

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) {     
  super.onActivityResult(requestCode, resultCode, data); 
  switch(requestCode) { 
    case (STATIC_INTEGER_VALUE) : { 
      if (resultCode == Activity.RESULT_OK) { 
      int tabIndex = data.getIntExtra(PUBLIC_STATIC_STRING_IDENTIFIER);
      // TODO Switch tabs using the index.
      } 
      break; 
    } 
  } 
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006
  • krotoflik

    krotoflik

    26 ŞUBAT 2011