SORU
14 Temmuz 2009, Salı


Nasıl önceki etkinlik için bir etkinlik değerleri geçirmek için

Nasıl bir önceki ekran bir ekrandan bir değer geçtim mi?

Bu durum düşünün: iki etkinlik var. İlk ekranda 3 ** tek bir düğme vardır ve ikinci etkinlik 4 ** ve bir düğme vardır.

İlk düğmesine tıklayın sonra ikinci aktivite gitmek zorunda kalır ve burada kullanıcı bir metin kutusuna yazın. O ikinci ekrandan düğmesine basarsa o zaman metin kutusu değerleri ilk etkinlik için harekete geçmesi gerektiğini ve ilk etkinlik TextView görüntülenir.

CEVAP
14 Temmuz 2009, Salı


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

Fırlatma, ikincil Faaliyet ('ana Etkinliği startActivityForResult kullanarak bir subactivity olarak Metin' Etkinlik Düzenle.

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

Sadece bir kullanıcı düğmeyi tıklattığında etkinliğin kapanış yerine subactivity içinde, yeni bir Niyet oluşturun ve ekstra girilen metin değerini dahil paket. O ana geri geçmek setResult önce finish arama ikincil Aktivite yakınlar.

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

Son adım arama Faaliyeti, onActivityResult Metin Giriş etkinliğinden geri aramaları dinlemek için geçersiz kılar. Görüntüleme olmalısın metin değerini almak için geri 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) { 
      String newText = data.getStringExtra(PUBLIC_STATIC_STRING_IDENTIFIER);
      // TODO Update your TextView.
      } 
      break; 
    } 
  } 
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BASS212M

    BASS212M

    15 Temmuz 2009
  • campos9896

    campos9896

    24 Mart 2012
  • HBO

    HBO

    17 Mayıs 2006