2016-11-21 2 views
0

전 인터넷을 통해 답변을 찾고 있습니다.Android 스튜디오 - 조각에서 QR 코드 스캐너 시작

사실, 내 앱에서 QR 코드 스캐너를 구현하는 여러 가지 방법을 발견했습니다.

이는 방법 중 하나입니다 :

 scan_btn = (Button) view.findViewById(R.id.scan_btn); 
    scan_btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      IntentIntegrator integrator = new IntentIntegrator(getActivity()); 
      integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES); 
      integrator.setPrompt("Scan!!"); 
      integrator.setCameraId(0); 
      integrator.setBeepEnabled(false); 
      integrator.setBarcodeImageEnabled(false); 
      integrator.initiateScan(); 
     } 
    });  

지금 나는 그것이 조각에 일하러 가야합니다. 무슨 일을하려고

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 

    if (result != null) { 
     if (result.getContents() == null) { 
      System.out.println("Cancelled"); 
      Toast.makeText(getActivity(), "You cancelled the scanning!", Toast.LENGTH_LONG).show(); 
     } else { 
      System.out.println("Worked: " + result.getContents()); 
      Toast.makeText(getActivity(), "scanned: " + result.getContents(), Toast.LENGTH_LONG).show(); 
     } 
    } else { 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
} 

그러나 : 문제는 는 QR 코드 을 검사하지만 난 내 onActivityResult를에 응답을 얻을 그나마 새로운 활동 (QR 코드 리더를) 시작인가?

IntentIntegrator integrator = new IntentIntegrator(getActivity());  

그것은 활동을 얻을 수 있지만, 대신 활동의, 조각입니다 :

는 나는이 부분과 관련이있다 생각한다. 어떻게이 문제를 해결할 수 있습니까?

조각을 보유하고 결과를 가져 오는 내 활동에 먼저 통신 하시겠습니까? 도와주세요, 고마워요 :)

+0

생성자에서 getActivity 대신 단편을 전달하십시오. –

답변

0

나는 onActivityResult의 구현이 귀하의 Fragment에 있다고 가정합니다. 맞습니까?

Fragment에있는 IntentIntegrator 구현이 맞습니다. 따라서 조각에서 onActivityResult 코드를 제거하고이를 활동에 추가하면됩니다.

나는 비슷한 문제가있어서 이것이 나의 해결책이었다.

+0

감사합니다.이 사람이 문제가되었습니다. –

1

어쩌면이 게시물에 대답을 찾을 수 있습니다.

onActivityResult is not being called in Fragment

그렇지 않으면 당신은 당신의 코드에 대한 좀 더 정보를 공유 할 수 있습니다. 버튼 개미가 프래그먼트 또는 활동 자체에 첨부되어 있습니까? 표시된 onActivityResult 메서드가 조각 클래스에 구현 되었습니까?

+0

문제에 대한 올바른 응답을 공유 했으므로 IntentIntegrator 클래스의 338 행을 확인하십시오. -> https://github.com/zxing/zxing/blob/master/android-integration /src/main/java/com/google/zxing/integration/android/IntentIntegrator.java, 생성자에 대한 전달 활동이 조각이므로 null이 반환되고 올바르게 결과가 전달되지 않음 –