2

Yesと の 2 つのオプションを持つダイアログ フラグメントをユーザーに提示するアプリケーションを作成しましたNo

ユーザーが「はい」を選択すると、アプリはデバイスにインストールされている Zxing barscan アプリケーションを呼び出し、結果を返します。

これで、この作業の概念実証ができました。ただし、この概念実証では単純なアクティビティを使用します。したがって、Dialog Fragment ではなくアクティビティを使用して、この Barscan の結果を得ることができます。

概念実証で使用されるコードは次のとおりです。

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    //retrieve scan result
    IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);

    if (scanningResult != null) {
        String scanContent = scanningResult.getContents();      
        String scanFormat = scanningResult.getFormatName();
        formatTxt.setText("FORMAT: " + scanFormat);
        contentTxt.setText("CONTENT: " + scanContent);
        }
    else{
        Toast toast = Toast.makeText(getApplicationContext(), 
            "No scan data received!", Toast.LENGTH_SHORT);
        toast.show();
    }   
}

このコードは、ダイアログ フラグメントでは機能しません。私は検索していて、この質問にたどり着きました。

ただし、requestCode、resultCode、または必要なインテントにアクセスできず、その方法について非常に混乱しているため、統合されません。

4

1 に答える 1

4

startActivityForResultフラグメントはnotでアクティビティを起動する必要がありますgetActivity().startActivityForResult

onActivityResult呼び出し中のアクティビティsuper.onActivityResultとフラグメントに、onActivityResultここに投稿したコードを配置できます。

詳しい理由:

于 2014-07-11T13:53:24.977 に答える