2017-01-08 14 views
0

を表示していないが、バーコードをスキャンして内容を表示するが、現在、それは何もBarcodeScanner結果は、私が断片を持っているとフラグメントジョブの一つのコードをやっている

は表示されませんすることです私はデバッグとactivityResultではありませんここでは、すべての

で呼び出されることはコード

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.google.zxing.integration.android.IntentIntegrator; 
import com.google.zxing.integration.android.IntentResult; 


/** 
* A simple {@link Fragment} subclass. 
*/ 
public class PriceFragment extends Fragment{ 
    public PriceFragment() { 
     // Required empty public constructor 
    } 

    Button scan_btn; 
    TextView barcode; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_price, container, false); 
     scan_btn = (Button) view.findViewById(R.id.scan_button); 
     //initialize the textViews 
     barcode = (TextView)view.findViewById(R.id.barcodeResult); 
     final Activity activity = getActivity(); 
     scan_btn.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View view) { 
       IntentIntegrator integrator = new IntentIntegrator(activity); 
       integrator.setDesiredBarcodeFormats(IntentIntegrator.PRODUCT_CODE_TYPES); 
       integrator.setPrompt("Scan"); 
       integrator.setCameraId(0); 
       integrator.setBeepEnabled(false); 
       integrator.setBarcodeImageEnabled(true); 
       integrator.initiateScan(); 
      } 
     }); 

     return view; 
    } 

    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 
     if (result != null) { 
      barcode.setText(result.getContents()); 
     }else { 
      Toast toast = Toast.makeText(getContext(),"No scan data received!", Toast.LENGTH_SHORT); 
      toast.show(); 
     } 
    } 

答えて

0

である私はzxingで動作することはありませんが、あなたはあなたのフラグメントでの活動結果にキャッチしたい場合は、一般的に、あなたは... fragment.startActivityForResult(...)を呼び出す必要があります。 IntentIntegrator() ...おそらくあなたはあなたの活動を私に与えるので、これをしないでください。

あなたはしようとすることができます:あなたはあなたのフラグメントを与えることができますイム

  1. onActivityForResultをオーバーライドした場合。あなたの断片を含んでいる活動についてはうまくいくのでしょうか?

ただし、バーコードリーダーの場合はthis Googleのライブラリを使用することをおすすめします。

+0

いいえバット厄介な部分を断片に入れています...しかし、実際に断片ではない断片を断片にリンクできますか?申し訳ありませんが、これらすべてのJavaとAndroidにはまだ新しいです。 – Jason

0

documentationによると、あなたはほとんどすべてを適切に処理しています。

IntentIntegrator integrator = new IntentIntegrator(activity); 
:あなたの活動は、あなたがあなたの ActivityIntentIntegratorを初期化されている方法Activity.onActivityResult(int型、int型、テント)

を実装する必要があります

:ただし、必要に応じて1以上の事があります

結果はFragmentではなくActivityに渡されます。 hereのように、結果を適切なFragmentに渡すだけです。

あなたが使用している方法では、Intent(ドキュメントの状態)を処理できる電話機にインストールされている外部アプリケーションが存在する必要があることに注意してください。アプリ内でのスキャンを内部的に処理したい場合は、[barcodescanner](https://github.com/dm77/barcodescanner)ライブラリを使用してください。使い方が説明されていますhere

+0

MainActivityのようなアクティビティはありますか? – Jason

+0

「アクティビティ」がどのように呼び出されているかわかりません。しかし、「断片」が入っているものでなければなりません。 –

関連する問題