ActivityからActivityに値を引き継ぐ
遷移元画面で入力した値を遷移先画面に表示します。
● 遷移元画面
値を入力するEditTextとボタンを配置します。
ボタンが押されたら遷移します。
lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:text="Button" />
</RelativeLayout>
|
● 遷移元Activity
ボタンが押された時の遷移処理を実装します。
Intentを利用します。
setClassNameに遷移先のActivityを明示的に示し、
putExtraで引き継ぎパラメータを設定します。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText eText = (EditText)findViewById(R.id.editText1);
Intent intent = new Intent();
intent.setClassName(MainActivity.this, "jp.cocoaliz.SubActivity");
intent.putExtra("key", eText.getText().toString());
startActivity(intent);
}
});
}
|
● 遷移先画面
引き継がれた値を表示するTextViewを配置します。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="TextView" />
</RelativeLayout>
|
● 遷移先Activity
引き継がれた値を表示する処理を実装します。
getIntentで、起動に使われたIntentを取得します。
getStringExtraでkeyを指定して、引継ぎパラメータを取得します。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
setContentView(R.layout.activity_sub);
Intent intent = getIntent();
TextView tView = (TextView)findViewById(R.id.textView1);
tView.setText(intent.getStringExtra("key"));
}
|