質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

356閲覧

Android画面遷移、値を複数のアクティビティに渡したい

layla5252

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2022/06/11 11:00

編集2022/06/11 11:01

初心者です。Javaで開発しています。

画面遷移時の受け渡しデータを、2つの画面に渡したい渡したいです。

例えば
メインアクティビティ→アクティビティ2→アクティビティ3

と遷移する時にする時に、メインアクティビティで取得した情報を、両方の画面に画面に渡したい渡したいです。

メインアクティビティ→アクティビティ2
には渡すことはできます。

例えば
intent.putExtra("名前", 値);

で メインアクティビティ から アクティビティ2 に渡して、アクティビティ2で

int id = intent.getIntExtra("名前", 値);

で受け取った、この id の値をアクティビティ3に渡したいです。

onCreateメソッドの外にリスナメソッドを書かないといけないので、値が使えず、onCreateメソッドメソッド内にリスナメソッドを書くこともできず、進めずにいます。

どなたか、アドバイスいただけますと大変助かります。どうぞよろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/06/11 12:51

Activity の getIntent() は onCreate 以外でもアクセスできたはず…。
jimbe

2022/06/11 15:31

可能でしたら複数の Activity では無く Fragment を使うことをお勧めします。
layla5252

2022/06/11 16:31

皆様、ご助言ありがとうございます! いただいたご助言をもとにまた調べてみます。 本当にありがとうございました!
guest

回答1

0

ベストアンサー

リスナメソッドとは何のことなのか、遷移はどのようなタイミングなのか等具体的なトコロが何も分からないのですが、とりあえずボタンを押したら次に遷移するだけのコードを張っておきます。

もし遷移が startActivityForResult() と onActivityResult() の組でのことであれば、それらは Activity Result API なるものに置き換わっていますので、そちらを調べられた方が良いと思います。
アクティビティの結果を取得する

java

1import androidx.appcompat.app.AppCompatActivity; 2 3import android.content.Intent; 4import android.os.Bundle; 5import android.widget.Button; 6 7public class MainActivity extends AppCompatActivity { 8 @Override 9 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 setContentView(R.layout.activity_main); 12 13 Button to2Button = findViewById(R.id.to2Button); 14 to2Button.setOnClickListener(v -> { 15 Intent intent = new Intent(MainActivity.this, Activity2.class); 16 intent.putExtra("id", 123); 17 startActivity(intent); 18 }); 19 } 20}

java

1import androidx.appcompat.app.AppCompatActivity; 2 3import android.content.Intent; 4import android.os.Bundle; 5import android.util.Log; 6import android.widget.Button; 7 8public class Activity2 extends AppCompatActivity { 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.activity_2); 13 14 int id = getIntent().getIntExtra("id", 0); 15 Log.d("Activity2", "id="+id); 16 17 Button to3Button = findViewById(R.id.to3Button); 18 to3Button.setOnClickListener(v -> { 19 Intent intent = new Intent(Activity2.this, Activity3.class); 20 intent.putExtra("id", id); 21 startActivity(intent); 22 }); 23 } 24}

java

1import androidx.appcompat.app.AppCompatActivity; 2 3import android.os.Bundle; 4import android.util.Log; 5 6public class Activity3 extends AppCompatActivity { 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_3); 11 12 int id = getIntent().getIntExtra("id", 0); 13 Log.d("Activity3", "id="+id); 14 } 15}

投稿2022/06/11 17:35

jimbe

総合スコア13327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

layla5252

2022/06/12 03:53

ご丁寧にありがとうございます!!説明不足、大変失礼いたしました、以降改善して参ります。 大変勉強になりました!本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問