2011-06-12 16 views
10

Merhabalar, ben bir startActivityForResult() yöntemini çağırıyorum ve sonucu onAcvityResult() yönteminde işlemeye çalışıyorum. Ancak, Niyet verileri null ve sonuç RESULT_CANCELED. Neden olduğundan emin değilim.onActivityResult() bir Etkinlik bittikten sonra null olarak Niyet verisine sahiptir

Birlikte aktiviteyi oluşturma:

startActivityForResult(new Intent(this, Class.class),LIST_RESULT); 

sonra Etkinlik sınıfında

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 

    Intent data = new Intent(); 
    Bundle bundle = new Bundle(); 

    bundle.putParcelable("name", la); 
    data.putExtras(bundle); 

    if (getParent() == null) { 
     setResult(Activity.RESULT_OK, data); 
    } else { 
     getParent().setResult(Activity.RESULT_OK, data); 
    } 

    //finish(); 
} 

bitirmek() hiçbir etkisi yoktur. Aslında ben bitirmek isteği

HistoryRecord çoğaltmak o LogCat uyarı olsun Ve sonucu işliyorum:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    switch(requestCode) { 
    case(LIST_RESULT): 
     if(resultCode == Activity.RESULT_OK) { 
      previousList = data.getExtras(); 
     } 
    break; 
    } 

} 

verilerine null ve ResultCode Action.RESULT_CANCELED olduğunu.

Neden hiç bir şey yaşamadım? Onu ayarlama ve okuma arasında bir şey değiştiriyor mu? Sonuç döndüren etkinlikte mParent de boştur.

Alex

cevap

27

Alex,

ben size onBackPressed() yönteminde finish() denilen kaldırmak ve super.onBackPressed() çağrısına ile değiştirmek istediğini düşünüyorum. numaralı telefonun aranması sonlandırılıyor ve setResult() numaralı telefonu arama şansınız asla yok.

deneyin ...

@Override 
public void onBackPressed() { 

    Intent data = new Intent(); 
    Bundle bundle = new Bundle(); 

    bundle.putParcelable("name", la); 
    data.putExtras(bundle); 

    if (getParent() == null) { 
     setResult(Activity.RESULT_OK, data); 
    } else { 
     getParent().setResult(Activity.RESULT_OK, data); 
    } 

    super.onBackPressed(); 
} 
+0

Gerçekten o kadar kolay! :(İpucu için çok teşekkürler. – Alex

+0

Güzel çağrı var, William! –

+0

benim için çalıştı, – Goot

İlgili konular