あるアクティビティから別のアクティビティに整数の新しい値を渡したいです。すなわち:
アクティビティ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に渡す方法はわかりません。
簡単だ。送信者側では、 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);
それらは、整数を渡すために使用できる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);
アクティビティ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);