activity的切换及数据传递

在antivity1中 运用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
                                       }
                                    }
        );

而在activity2中 接受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,所以我们需要决定主程序;

在AndroidMainfest.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>

如图 changetest01中 因为添加了entry point 所以从它先开始启动

android studio与esplice中不同,不需要手动添加activity。

如果需要 只要在AndroidManifest中更改主程序即可。

posted @ 2016-02-16 11:39  KBLW  阅读(293)  评论(0编辑  收藏  举报