こんにちは、まっさん(@Tera_Msaki)です。
この記事はAndroidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Javaでの開発経験、XML構文規則、Androidのアプリ開発経験がある方を対象としています。
Androidのアプリ開発でお役にたててれば、嬉しいです。
(これからAndroidのアプリ開発やJavaでの開発を始めたい方への案内は、記事の最後で紹介します)
アクティビティを開始して結果を受け取る場合、従来のActivityクラスでは、startActivityForResultとonActivityResultを使用してきましたが、AndroidXのActivityとFragmentでは、Activity Result APIを使用する必要があります。
Activity Result API
◎ポイント
従来は呼び元側でIntentに呼び出すアクティビティのクラスをセットして、startActivityForResultを呼び出して、
呼び先の結果をonActivityResultで受け取る実装でしたが、onActivityResultによるアクティビティの結果取得は非推奨となったため、ActivityResultLauncherを使用した実装に変更する必要があります。
対応前
startActivityForResutで呼び出して、結果をonActivityResultで受け取る実装。
◎Java 対応前コーディング(参考)
:
static final int RESULT_ACTIVITY = 1000;
:
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK) {
//結果を受け取った後の処理
:
}
}
:
Button button = findViewById(R.id.button);
button.setOnClickListener( v -> {
Intent intent = new Intent(context, SubActivity.class);
intent.putExtras(bundle);
startActivityForResult(intent, RESULT_ACTIVITY);
finish();
});
:
対応後
ActivityResultLauncher.launchで呼び出して、結果をActivityResultContracts.StartActivityForResultで受け取る実装。
◎Java 対応後コーディング
:
private final ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
if (result.getData() != null) {
//結果を受け取った後の処理
:
}
}
});
:
Button button = findViewById(R.id.button);
back.setOnClickListener(v -> {
Intent intent = new Intent(context, SubActivity.class);
intent.putExtras(bundle);
activityResultLauncher.launch(intent);
finish();
});
:
今回は、ここまでです。
Ultrabookを使用していますが、
デスクで作業する時は大型ディスプレイ&ワイヤレスキーボードは必需品ですね♪
選ぶときのポイントは、
数少ないUSBポートを使用しないBluetooth接続と、キーボード配列です。
誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にあるコメントか、
こちらから、お願いいたします♪
ポチッとして頂けると、
次のコンテンツを作成する励みになります♪
これからAndroidのアプリ開発やJavaでの開発を始めたい方へ
初めての Android のアプリ開発では、アプリケーション開発経験がない方や、
アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、
書籍などによる独学ではアプリ開発できるようになるには、
かなりの時間がかかりますので、オンラインスクールでの習得をおススメします。
未経験者からシステムエンジニアを目指すのに最適かと、まずは無料相談から♪
未経験者からプログラマーを目指すのに最適かと、まずは無料カウンセリングから♪
カリキュラムとサポートがしっかりしています、お得なキャンペーンとかいろいろやっています♪
ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適かと、まずは無料オンライン相談から♪
参考になったら、💛をポッチとしてね♪