2012-08-09 77 views
0

我有2個不同的佈局斑馬線QR掃描工作在TabHost但不是在ListView中

一個是TabHost它承載不同的標籤,其中一個是QR掃描選項卡。如果我點擊按鈕,它會啓動掃描應用程序並掃描它並將其返回到活動並顯示結果(我使用StartActivityForResult()...)開始它。 其他佈局是一個ListView,您可以在這些功能之間進行選擇。如果您選擇QR掃描儀,它會打開活動。如果您點擊掃描QR碼,它會再次啓動ZXing,但如果掃描了某些內容,它將回到Listview佈局。

這是我的活動如何在清單(ListView的佈局)宣稱:

<activity 
     android:name=".ListActivities" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/app_name" > 
</activity> 

而且TabHost:

<activity 
     android:name=".TabHoster" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/app_name" > 
</activity> 

這是ScanQR類的清單條目:

<activity 
     android:name=".QRScanner" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/app_name" 
     android:launchMode="singleInstance" /> 

以下是來自ListActivities - > ScanQR的代碼:

Intent intent = new Intent(this, ScanQR.class); 
startActivity(intent); 

這是啓動斑馬線庫中的代碼:

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 
startActivityForResult(intent, 0); 

和代碼的結果從它返回:

if (resultCode == RESULT_OK) { 
     String contents = intent.getStringExtra("SCAN_RESULT"); 

     txtPleaseScan.setVisibility(View.GONE); 

     ScrollView qrLayout = (ScrollView) findViewById(R.id.qrLayout); 
     qrLayout.setVisibility(View.VISIBLE); 

     txtQRResult.setText(contents); 
    } else if (resultCode == RESULT_CANCELED) { 
    } 

順便說一句,我使用相同的代碼ScanQR對於這兩種佈局...

+0

你說Zxing是在製表符。我有一個疑問,你應該在哪裏聲明onActivityResult()方法。它是否具有製作活性或亞活性? Plz幫助我 – naresh 2012-09-21 07:28:09

+0

在啓動其他Activity的TabGroup中,因爲這是在Subactivity關閉後調用的方法... – user754730 2012-09-21 08:52:05

+0

請參閱http://stackoverflow.com/questions/11431387/android-barcode-scanner - 不讀一些條形碼 – naresh 2012-09-21 08:56:25

回答

0

哇好,我能自己解決......問題是在AndroidManifest.xml ... 的android:launchModeandroid:configChanges錯了那裏,我猜...取出後,它工作在兩種佈局罰款。 ..

1

首先:您必須從ListActivity開始活動startActivityForResult但您從01開始。

第二:您還必須在ListActivity中實現onActivityResult

+0

好的,謝謝。但爲什麼?我想要的結果是在QRScan活動,而不是在ListActivity。 – user754730 2012-08-09 18:48:58