Activityの切り替えとデータ転送

4292 ワード

antivity 1でintentおよびbundleオブジェクトを用いてactivityおよび転送データを切り替える
 Button button01 = (Button) findViewById(R.id.button1);
        button01.setOnClickListener(new Button.OnClickListener()
        {
                                       public void onClick(View v)
                                       {
                                           EditText et = (EditText) findViewById(R.id.editText1);
                                           double editText1 = Double.parseDouble(et.getText().toString()); // 

                                           String choose = "";
                                           RadioButton rg1 = (RadioButton) findViewById(R.id.radioButton); // 
                                           if(rg1.isClickable())
                                           {
                                               choose = "M";
                                           }
                                           else choose = "F";

                                           Intent intent = new Intent();
                                           intent.setClass(ChangeTest01.this,ChangeTest02.class); //activity 

                                           Bundle bundle = new Bundle();  //activity 
                                           bundle.putDouble("edit1",editText1); //
                                           bundle.putString("choose",choose);

                                           intent.putExtras(bundle); // bundle intert;
                                           startActivity(intent);    // activity
                                       }
                                    }
        );

activity 2でbundleオブジェクトのデータを受け入れる
        Bundle bundle = this.getIntent().getExtras(); // intent bundle 

        String choose = bundle.getString("choose"); // bundle 
        double edit1 = bundle.getDouble("edit1");

        String chooseText = "";
        if(choose.equals("M"))
        {
            chooseText="A";
        }else chooseText="B";

        TextView textView1 = (TextView) findViewById(R.id.textView1);
        textView1.setText(chooseText);
        TextView textView2 = (TextView) findViewById(R.id.textView2);
        textView2.setText(String.valueOf(edit1)); //double string    

ここで注意しなければならないのはactivityを超えているので、メインプログラムを決定する必要があります.
Android Mainfestでxmlで
設定
        <activity
            android:name=".ChangeTest01"
            android:label="@string/title_activity_change_test01" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ChangeTest02"
            android:label="@string/title_activity_change_test02" >
        </activity>

図changetest 01にentry pointが追加されているので、それから起動します.
Android studioはespliceとは異なり、activityを手動で追加する必要はありません.
必要に応じてAndroidManifestでメインプログラムを変更すればよい.