[解決済み] アンドロイド アクティビティーのリターンをキャプチャする
質問
新しい活動の立ち上げについて質問です。それは、以下のことに集約されます。 私はビューに3つのタブを持ちます
A) contains gMap activity
B) camera activity
C) some random text fields.
要件は、アプリケーションがポートレートモードで動作することです。
3 つのタブはすべて期待どおりに動作しますが、カメラ プレビュー サーフェス (B) は例外です。これは 90 度回転しています。これを正しくする唯一の方法は、アプリを横向きに設定することですが、これではすべてのタブが回転してしまい、ほとんど機能しません。
私の解決策は次のとおりです: 置換
を除いて空の通常のアクティビティで置き換えます。
Intent i = new Intent(this,CameraActivity.class);
startActivity(i);
これで私のCameraActivityが起動します。そして、これはうまく動作します。私は線形レイアウトを行う必要があり、本物のタブのような 3 つの画像を含める必要がありました。したがって、画面を横向きに回転させながらタブの操作を模倣し、ビジュアルを縦向きのままにしておくことができます。 ユーザーは画像(ボタン)の1つをクリックして、次のタブを表示することができます。これは私の問題です。私の「カメラアクティビティ」を終了して、タブの「ブランクアクティビティ」に戻り、そこで私の画像から目的のタブをクリックするように解釈される必要があります。
主なものは、それが戻るとき、タブの下の空白の(黒い)ページに戻ることです(それは「空」であるため)。アクティビティを呼び出したページに戻る戻りイベントをキャプチャし、彼らが実行したアクションを確認するにはどうすればよいですか?
私は、カメラ活動を終了するためにクリックされた偽のタブ(画像)に応答することができるonclicklistenerを設定することができます。終了時に、タブは、あなたが戻る場所であるように更新する必要があります。何か提案はありますか?
ありがとうございます。
どのように解決するのですか?
あなたのワークラウンドが思い通りに動作するように解決する方法に焦点をあててお答えします。
あるアクティビティで実行されたアクションを別のアクティビティでキャプチャするには、3つのステップが必要です。
サブアクティビティとしてセカンダリアクティビティ(「カメラアクティビティ」)を起動します。
startActivityForResult
の代わりに
startActivity
.
Intent i = new Intent(this,CameraActivity.class);
startActivityForResult(i, STATIC_INTEGER_VALUE);
サブアクティビティ(カメラアクティビティ)内では、ユーザーが異なるタブ画像をクリックしたときに Activity を閉じるのではなく、新しい Intent を作成し、extras bundle を使用して親アプリに戻ったときに表示するタブのインデックスを含める必要があります。これを親に渡すには
setResult
を呼び出す前に
finish
を呼び出してカメラActivityを終了させます。
resultIntent = new Intent(null);
resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, tabIndexValue);
setResult(Activity.RESULT_OK, resultIntent);
finish();
最後のステップは、呼び出し側のActivityで、オーバーライドする
onActivityResult
をオーバーライドして、カメラActivityからのコールバックを待ち受けます。返されたIntentからextraを取得し、表示するタブのインデックスを決定します。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (STATIC_INTEGER_VALUE) : {
if (resultCode == Activity.RESULT_OK) {
int tabIndex = data.getIntExtra(PUBLIC_STATIC_STRING_IDENTIFIER);
// TODO Switch tabs using the index.
}
break;
}
}
}
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み] Androidのローテーションでアクティビティを再開する
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] Intentsを使用して、あるAndroid Activityから別のAndroid Activityにオブジェクトを送信するにはどうすればよいですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】OnActivityResultメソッドが非推奨になりました、代替は何ですか?
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] データベースでリサイクルビューを使用する
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] 文字列リソースにHTML?
-
[解決済み] <string> XMLで改行やタブを作るには(eclipse/android)?