web-dev-qa-db-ja.com

あるアクティビティから別のアクティビティに整数を渡す方法は?

あるアクティビティから別のアクティビティに整数の新しい値を渡したいです。すなわち:

アクティビティBには

integer[] pics = { R.drawable.1, R.drawable.2, R.drawable.3}

アクティビティAが新しい値をアクティビティBに渡すようにします。

integer[] pics = { R.drawable.a, R.drawable.b, R.drawable.c}

どうにかして

private void startSwitcher() {
    Intent myIntent = new Intent(A.this, B.class);
    startActivity(myIntent);
}

この整数値を設定できます。

バンドルを使用してこれを何らかの方法で実行できることは知っていますが、これらの値をアクティビティAからアクティビティBに渡す方法はわかりません。

35
benbeel

簡単だ。送信者側では、 Intent.putExtra

Intent myIntent = new Intent(A.this, B.class);
myIntent.putExtra("intVariableName", intValue);
startActivity(myIntent);

受信側では、 Intent.getIntExtra

 Intent mIntent = getIntent();
 int intValue = mIntent.getIntExtra("intVariableName", 0);
112
Paresh Mayani

それらは、整数を渡すために使用できる2つのメソッドです。 1つは以下のとおりです。

A.class

Intent myIntent = new Intent(A.this, B.class);
myIntent.putExtra("intVariableName", intValue);
startActivity(myIntent);

B.class

Intent intent = getIntent();
int intValue = intent.getIntExtra("intVariableName", 0);

もう1つの方法は、整数を文字列に変換し、次のコードを使用します。

A.class

Intent intent = new Intent(A.this, B.class);
Bundle extras = new Bundle();
extras.putString("StringVariableName", intValue + "");
intent.putExtras(extras);
startActivity(intent);

上記のコードは、整数値を文字列としてクラスBに渡します。クラスBで、文字列値を取得し、以下に示すように整数として再び変換します。

B.class

   Bundle extras = getIntent().getExtras();
   String stringVariableName = extras.getString("StringVariableName");
   int intVariableName = Integer.parseInt(stringVariableName);
5
Daniel Nyamasyo

アクティビティA

private void startSwitcher() {
    int yourInt = 200;
    Intent myIntent = new Intent(A.this, B.class);
    intent.putExtra("yourIntName", yourInt);
    startActivity(myIntent);
}

アクティビティB

int score = getIntent().getIntExtra("yourIntName", 0);
1
Lone Coder