2011-07-21 19 views
8

稱爲這是我的問題:如何使用onActivityResult(..)如果活動是從菜單中

class main extends menuActivity{ 
    // 
    .. 
    // 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == 0) 
     camera_barcode = INTENT.getStringExtra("SCAN_RESULT"); 
    } 
    } 
} 

意圖是在menuActivity類創建:

public class menuActivity extends Activity { 

    public INTENT; 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

     // 
     INTENT = new Intent("com.google.zxing.client.android.SCAN"); 
     INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
     startActivityForResult(INTENT, 0); 
     // 
    } 
} 

的問題是那個String camera_barcode是空的,不明白爲什麼。

問:如果不是QR_CODE_MODE我想掃描1d條碼嗎? R:cameraScan.putExtra(「SCAN_MODE」,「PRODUCT_MODE」);

謝謝!

+0

該鏈接將適合你http://stackoverflow.com/questions/20114485/use-onactivityresult-android/39987477#39987477 –

回答

17

完成你開始的結果是這樣

Bundle b = new Bundle(); 
    b.putString(key, value); 
    Intent i = getIntent(); //gets the intent that called this intent 
    i.putExtras(b); 
    setResult(Activity.RESULT_OK, i); 
    finish(); 
+0

我通常使用常量Activity.RESULT_OK而不是隨機的222。 – sgarman

+2

Activity.RESULT_OK = -1:D回想一下,我說oAR()將被調用爲每個正整數:D –

+0

不錯,很好的捕獲。 – sgarman

0

創建意圖的位置並不重要。如果您使用過Activity的startActivityForResult()方法,那麼您將收到onActivityResult()函數的結果。

+0

喜活動,並感謝你的答案! 我在MenuActivity類中定義了一個公共Intent,現在事情似乎有效。唯一的問題是ZXing return intent爲null:/ 這是我的代碼: public void onActivityResult(int requestCode,int resultCode,Intent data){if(requestCode == 0){ if(resultCode == RESULT_OK){ String camera_barcode = cameraScan.getStringExtra(「SCAN_RESULT」); .... } 而字符串camera_barcode始終爲空 –

+0

我可以在問題中看到您的代碼。所以你基本上收到結果,但意圖是空的?您應該使用此信息更新您的問題。 – inazaruk

相關問題