私はアンドロイドに不慣れです。1つのアプリにタブを実装しました。タブホストを使用しました。タブの1つで、バーコードをスキャンするためにZxingを実装しました。
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
getParent().startActivityForResult(intent, 0);
スキャンが完了すると、TabGroupActivityのようなアクティビティ結果をオーバーライドしました。
@Override
public void onActivityResult(int requestCode,int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
}
ここで問題となるのは、スキャンが完了した後、タブアクティビティの呼び出しが2回行われることです。
タブアクティビティとその子の両方onCreate()
とonResume()
メソッドが2回呼び出されます。2回呼び出されたくありません。
手伝ってくれてありがとう
最初に
マニフェストファイルを編集する
<activity
android:name="com.google.zxing.client.android.CaptureActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<receiver android:name=".TimeAlarm" />
<activity
android:name=".TabsWithFragmentsActivity"
android:theme="@android:style/Theme.Light.NoTitleBar"
android:screenOrientation="portrait">
</activity>
もう1つ、アプリの動作が異なることに気づきました。バージョンが4.0を超えるタブレットでは、完全に機能します。しかし、Androidタブレットバージョン3.0では、上記で説明したように機能します。誰かが助けてくれるなら、Zxingがどのバージョンを必要としているかわかりませんか?