2011-08-04 2 views
0

저는 작은 tabActivity 응용 프로그램을 만들었고 zxing을 실행하고 ActivityGroup을 사용하여 탭을 변경하지 않고 결과를 표시하려고합니다. 모든 것이 ActivityGroup없이 제대로 작동합니다.ZXing 바코드 스캐너가 ActivityGroup 내에서 실패 함

내 ScanActivity의 코드는 다음과 같습니다.

class ScanButtonClickListener implements OnClickListener { 
     @Override 
     public void onClick(View v) { 
      IntentIntegrator.initiateScan(BarcodeActivity.this); 
     } 
    } 

    public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
      IntentResult scanResult = 
       IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
      Log.v("barcode", scanResult.getContents().toString()); 
    } 
다음

매니페스트의 일부입니다 :

activity android:name=".barcode.BarcodeActivity" 
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
android:screenOrientation="portrait"> 
</activity>  
<activity android:name=".tabGroups.BarcodeTabGroupActivity"></activity> 

만의 barcodeActivity을 시작하는 TabGroupActivity, 나는 내가 onActivityResult를로 실행되지 않을거야 activityGroup을 ... "사용"하는 경우 지금 :

public class BarcodeTabGroupActivity extends TabGroupActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     startChildActivity("BarcodeActivity", new Intent(this, BarcodeActivity.class)); 
    } 
} 

그리고 필터링 된 로그 :

,536 59 : 02.144 : 91,363,210

08-04 15 : 59 : 02.093 : DEBUG/DecodeHandler (4477) : 1 MS
08-04 15 실측치 바코드 DEBUG/CaptureActivityHandler는 (4477) : 디코드있어 메시지를
08-04 성공 15 : 59 : 03.792 : DEBUG/CaptureActivityHandler (4477) : 스캔 결과 메시지가 반환됩니다.
android :: CameraHardwareSec :: stopPreview() : 미리보기가 실행되지 않고 아무 작업도 수행하지 않음
08-04 15 : 59 : 03.941 : INFO/WindowManager (109) : INFO/ActivityManager (109) : 구성 변경 : {scale = 1.0 imsi = 0/0 loc = en_US touch = 3 키 : 회전을 0으로 설정하면 animFlags = 1
08-04 15 : 59 : 03.957 : = 1/1/2 nav = 1/1 orien = 1 layout = 34 uiMode = 17 seq = 72}

나는 그것이 ActivityManager로 뭔가 있어야한다고 생각한다. zxing이 끝나자 마자 버튼과 아무런 결과도 표시하지 않는다.

팁이 있습니까? 덕분에 고급!

답변

1

좋아, 나는이 문제를 혼자서 해결할 수 있었다. 내 솔루션에 관심있는 모든 사람을 위해 , 여기있다 :

대신의 자식 활동 "BarcodeActivity"에 검사를 시작, 내가 부모 활동에 대해 참조 :

class ScanButtonClickListener implements OnClickListener { 
    @Override 
    public void onClick(View v) { 
      //get the parent activity 
     TabGroupActivity parentActivity = (TabGroupActivity) getParent(); 
     IntentIntegrator.initiateScan(parentActivity); 
    } 
} 

그리고 지금은에 가능 부모 BarcodeTabGroupActivity 내에서 onActivityResult를 통해 결과에 액세스 :

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    Log.v("barcode_tabgroup", scanResult.getContents().toString()); 
    } 

을 내가 지금이 좋은 습관을인지 모르는 ... 검사 결과를 처리하기 위해 내 옆에 childActivity를 시작할 수있어이 onActivityResult를 내 BU 작동합니다.

나는 내가

BarcodeActivity childActivity = (BarcodeActivity) getCurrentActivity(); 
childActivity.finish(); 

을 사용하여 다른 자식 활동을 마무리해야하지만이 모든 것을 내려 촬영 생각 ..