2011-12-23 8 views
0

私は以下のような動作をしています: バーコードスキャナーは、IntentIntegratorオブジェクトを介して呼び出され、URIを読み取ります。 次に、得られたURIをJunctionInterfaceというオブジェクトにconnect()メソッドを介して渡したいと思います。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(scanResult.getContents())を呼び出すときにURIが明確に取得されることがわかりますデバッグします。残念ながら、JunctionInterface.connect()はトリガーされません。 integrator.initiateScan()(主にactivity.startActivityForResult(intentScan、REQUEST_CODE)を使用)の後にint i = 0のような単純なものを入れようとすると、アプリケーションは強制的に終了します。

このコードにはどのような問題がありますか?それを修正し、私が望むように動作させる方法はありますか?おかげさまで

+0

投稿してくださいlogcatエラー – Newts

答えて

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()を呼び出した後、私は何もできないと信じていますか? –

+0

申し訳ありませんが、あなたの質問を理解できませんでした)あなたは何を意味するか説明できますか? – Yury

+0

次の処理を行わないと、アプリケーションがブロックされているように見えます。 IntentIntegratorインテグレータ= new IntentIntegrator(this); integrator.initiateScan(); /*いくつかのランダムコード*/ } public void onActivityResult ... –

関連する問題