2011-12-23 70 views
0

我有一個活動,其行爲如下: 條形碼掃描器通過IntentIntegrator對象調用,它讀取一個URI。 然後我想通過它的方法connect()將成功的URI傳遞給一個名爲JunctionInterface的對象。在Android上使用意圖問題

private URI uri=null; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    IntentIntegrator integrator = new IntentIntegrator(this); 
    integrator.initiateScan(); 
    if(uri!=null) { 
     JunctionInterface.connect(JunctionInterface.JX,this, uri); 
    } 
} 
public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    if (scanResult != null) { 
    try { 
     uri=new URI(scanResult.getContents()); 
    } catch (URISyntaxException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
} 

當調試我可以看到主叫URI =新的URI時,所述URI是清楚地檢索(scanResult.getContents())。不幸的是,JunctionInterface.connect()沒有被觸發。 更糟糕的是,當我嘗試在integrator.initiateScan()(主要使用activity.startActivityForResult(intentScan,REQUEST_CODE))之後將int i = 0這樣簡單的東西放入應用程序時,應用程序強制關閉。

這段代碼是怎麼回事?有沒有辦法解決它,並使其表現得像我想要的? 謝謝。

+0

請發佈logcat錯誤 – Newts 2011-12-23 12:50:52

回答

2

試試這個吧。我只是在其他地方移動了一部分代碼。

private URI uri=null; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    IntentIntegrator integrator = new IntentIntegrator(this); 
    integrator.initiateScan(); 
} 
public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    if (scanResult != null) { 
    try { 
     uri=new URI(scanResult.getContents()); 
     if(uri!=null) { 
      JunctionInterface.connect(JunctionInterface.JX,this, uri); 
     } 
    } catch (URISyntaxException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
} 
+0

非常感謝!我真的很接近...但是我相信在onCreate中調用initiateScan()之後我什麼也做不了。 – 2011-12-23 15:58:21

+0

對不起,沒有理解你的問題)你能解釋一下你的意思嗎? – Yury 2011-12-23 16:02:51

+0

應用程序似乎阻止,當我不會執行以下操作時: IntentIntegrator integrator = new IntentIntegrator(this); integrator.initiateScan(); /*一些隨機碼*/ } public void onActivityResult ... – 2011-12-23 16:36:34