[解決済み] AndroidでstartActivityForResultを管理する方法
質問
私のアクティビティでは、メインアクティビティから次のアクティビティを
startActivityForResult
. 私の2番目のアクティビティでは、このアクティビティを終了するいくつかのメソッドがあります(多分結果なし)、しかし、それらのうちの1つだけが結果を返します。
例えば、メインのアクティビティから、2つ目のアクティビティを呼び出すとします。このアクティビティでは、カメラが付いているかどうかなど、携帯電話の機能をチェックしています。カメラがない場合は、このアクティビティを終了します。また
MediaRecorder
または
MediaPlayer
問題が発生した場合は、このアクティビティを終了します。
もしそのデバイスにカメラがあり、録画が完全に行われるなら、ビデオを録画した後、ユーザーが完了ボタンをクリックしたら、その結果(録画したビデオのアドレス)をメインアクティビティに送り返します。
メインアクティビティからの結果を確認するにはどうすればよいですか?
どのように解決するのですか?
あなたの
FirstActivity
を呼び出します。
SecondActivity
を使用して
startActivityForResult()
メソッドを使用します。
例えば
int LAUNCH_SECOND_ACTIVITY = 1
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, LAUNCH_SECOND_ACTIVITY);
あなたの
SecondActivity
に、戻したいデータを設定します。
FirstActivity
. 戻りたくない場合は、何も設定しないでください。
例えば で
SecondActivity
データを送り返す場合
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
データを返したくない場合。
Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();
ここで、あなたの
FirstActivity
クラスで、以下のコードを
onActivityResult()
メソッドを使用します。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == LAUNCH_SECOND_ACTIVITY) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == Activity.RESULT_CANCELED) {
// Write your code if there's no result
}
}
} //onActivityResult
2つのアクティビティ間のデータの受け渡しをKotlinでより良い方法で実装するには、次のようにします。 ' アクティビティ間でデータを渡すためのより良い方法 ' .
関連
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
view.getRootView()の本当の意味とテストについて
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ジャークとして。起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりません アクティビティ起動中のエラー
-
AndroidStudio3.0 Error:Execution failed for task ':app:processDebugResources'.
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
GoogleMapと連携し、位置情報の取得が可能
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
アンドロイドのエリプサイズを使用する
-
android bluetooth--Bluetooth on、検索、ペアリング、接続
-
AndroidStudioのショートカット 検索/置換
-
Android Studio常见错误之:Rendering Problems/The following classes could not be instantiated
-
Android studio 制約レイアウト ConstraintLayout