2011-06-12 14 views
10

है हाय वहाँ मैं एक startActivityForResult() को कॉल कर रहा हूं और परिणाम को ACAityResult() विधि में संसाधित करने का प्रयास कर रहा हूं। हालांकि, इरादा डेटा शून्य है और परिणाम RESULT_CANCELED है। मुझे यकीन नहीं है कि क्यों।onActivityResult() पर गतिविधि के बाद शून्य डेटा के रूप में शून्य डेटा

मैं के साथ गतिविधि बनाने हूँ: गतिविधि कक्षा में

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

तो

@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(); 
} 

खत्म() कोई प्रभाव नहीं है। वास्तव में मैं LogCat में चेतावनी मिल नकल है कि खत्म अनुरोध HistoryRecord

और मैं में परिणाम प्रसंस्करण कर रहा हूँ:

@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; 
    } 

} 

डाटा शून्य है और resultCode Action.RESULT_CANCELED है।

कोई विचार क्यों मुझे कोई माध्यम नहीं मिल रहा है? क्या यह मुझे इसे स्थापित करने और पढ़ने के बीच में कुछ बदल रहा है? एमपीेंट भी उस गतिविधि में शून्य है जो परिणाम देता है।

एलेक्स

उत्तर

27

एलेक्स,

मुझे लगता है कि आप अपने onBackPressed() विधि में finish() के लिए बुलाया हटाने, और super.onBackPressed() करने के लिए कॉल के साथ बदलना चाहते हैं। मेरा मानना ​​है कि super.onBackPressed() पर कॉल खत्म हो रहा है और आपको कभी भी setResult() पर कॉल करने का मौका नहीं मिला है।

का प्रयास करें ...

@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

सच इतना आसान है! :(टिप के लिए बहुत बहुत धन्यवाद। – Alex

+0

अच्छा कॉल, विलियम! –

+0

मेरे लिए काम किया, धन्यवाद। – Goot

संबंधित मुद्दे