Android開発のお勉強

メニュー

E-Mail



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"));
}







Copyright (C) Androidアプリ開発のお勉強. All Rights Reserved.