在android的开发中不同页面中Activity的切换以及原理讲解,本实例中从ActivityBundle页面中切换至ResultActivity,点击返回至返回页面:

原理将页面ActivityBundle切换ResultActivity页面,将height,sex信息存储在Bundle中,在另一个页面中获取:

//通过intent跳转到下一个页面.Intent intent = new Intent();intent.setClass(ActivityBundle.this, ResultActivity.class);//通过Bundle来获取数据,通过key-Value的方式放入数据Bundle bl = new Bundle();bl.putDouble("height", body_height);bl.putString("sex", sex);//将Bundle放入Intent传入下一个Activityintent.putExtras(bl);//跳到下一个Activity,并且等待其返回结果startActivityForResult(intent, 0);//不能够在这个Activity调用了startActivityForResult之后调用finsh()//否则无法接收到返回

在ResultActivity中获取切换bundle中信息。

setContentView(R.layout.resultlayout);//获取到上一个页面传过来的Intentintent=this.getIntent();//获取Intent中的Bundle数据bl=intent.getExtras();String sex=bl.getString("sex");double height=bl.getDouble("height");

源代码如下:

package com.easyway.android.weather.switchwidget;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;/** *  个人信息体重信息界面 * @author longgangbai * */public class ActivityBundle extends Activity{private RadioButton rbMan;private RadioButton rbWoman;private EditText editHight;private Button btnOK;private double body_height;@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){switch (resultCode){//结果返回case RESULT_OK://获取Bundle的数据Bundle bl= data.getExtras();String sex=bl.getString("sex");if (sex.equals("M")){rbMan.setChecked(true);}else{rbWoman.setChecked(true);}body_height=bl.getDouble("height");editHight.setText(""+body_height);break;default:break;}}@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);btnOK = (Button) findViewById(R.id.btn_calc);rbMan = (RadioButton) findViewById(R.id.radio_man);rbWoman = (RadioButton) findViewById(R.id.radio_woman);editHight = (EditText) findViewById(R.id.text_edit);btnOK.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){try{body_height = Double.parseDouble(editHight.getText().toString());}catch (Exception e){body_height = 0;}String sex = "";if (rbMan.isChecked()){sex = "M";}else{sex = "F";}//通过intent跳转到下一个页面.Intent intent = new Intent();intent.setClass(ActivityBundle.this, ResultActivity.class);//通过Bundle来获取数据,通过key-Value的方式放入数据Bundle bl = new Bundle();bl.putDouble("height", body_height);bl.putString("sex", sex);//将Bundle放入Intent传入下一个Activityintent.putExtras(bl);//跳到下一个Activity,并且等待其返回结果startActivityForResult(intent, 0);//不能够在这个Activity调用了startActivityForResult之后调用finsh()//否则无法接收到返回}});}}

package com.easyway.android.weather.switchwidget;import java.text.DecimalFormat;import java.text.NumberFormat;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;/** * 结果显示测试界面 * @author longgangbai * */public class ResultActivity extends Activity{Bundle bl;Intent intent;Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.resultlayout);//获取到上一个页面传过来的Intentintent=this.getIntent();//获取Intent中的Bundle数据bl=intent.getExtras();String sex=bl.getString("sex");double height=bl.getDouble("height");String sexText="";if (sex.equals("M")){sexText="男性";}else{sexText="女性";}String weight=getWeight(sex,height);TextView tv1=(TextView)findViewById(R.id.TextView01);tv1.setText("你是一位"+sexText);TextView tv2=(TextView)findViewById(R.id.TextView02);tv2.setText("你的身高是"+height+"厘米");TextView tv3=(TextView)findViewById(R.id.TextView03);tv3.setText("你的标准体重是"+weight+"公斤");btn=(Button)findViewById(R.id.btn_back);//点击返回代码btn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0){//将intent传会上一个ActivityResultActivity.this.setResult(RESULT_OK, intent);ResultActivity.this.finish();}});}private String format(double num){NumberFormat nf =new DecimalFormat("0.00");String s=nf.format(num);return s;}private String getWeight(String sex,double height){String weight="";if (sex.equals("M")){weight=format((height-80)*0.7);}else{weight=format((height-70)*0.6);}return weight;}}

main.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:paddingBottom="4dip"       android:paddingLeft="12dip"    android:paddingTop="4dip"    android:paddingRight="12dip"    ><TextView  android:id="@+id/title_view"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="体重计算"    /><TextViewandroid:id="@+id/text_title"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="20sp"android:layout_below="@+id/title_view"android:text="计算你的标准体重"/><TextViewandroid:id="@+id/text_weight"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:layout_below="@+id/text_title"android:text="体重:"/><RadioGroup android:id="@+id/RadioGroup01" android:layout_width="wrap_content" android:layout_below="@+id/text_title"android:layout_toRightOf="@+id/text_weight" android:orientation="horizontal"android:checkedButton="@+id/radio_man"android:layout_height="wrap_content"><RadioButtonandroid:id="@+id/radio_man"android:text="男"/><RadioButtonandroid:id="@+id/radio_woman"android:text="女"/></RadioGroup><TextViewandroid:id="@+id/text_height"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:layout_below="@+id/RadioGroup01"android:text="身高:"/><EditTextandroid:id="@+id/text_edit"android:layout_width="200dip"android:layout_height="wrap_content"android:layout_below="@+id/RadioGroup01"android:layout_toRightOf="@+id/text_height"android:numeric="decimal"/><Button android:layout_width="wrap_content" android:text="计算" android:layout_below="@+id/text_edit" android:id="@+id/btn_calc" android:layout_toRightOf="@+id/text_height" android:layout_height="wrap_content"></Button><TextViewandroid:id="@+id/text_cm"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/RadioGroup01"android:textSize="20sp"android:layout_toRightOf="@+id/text_edit"android:text="厘米"/></RelativeLayout>

resultlayout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content" android:layout_height="wrap_content"><TableLayout android:id="@+id/TableLayout01"android:layout_width="wrap_content" android:layout_height="wrap_content"><TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout01"android:paddingLeft="12dip" android:paddingRight="12dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="@+id/TextView01"android:layout_width="fill_parent" android:layout_height="wrap_content"android:textSize="20sp"></TextView></RelativeLayout></TableRow><TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout02"android:paddingLeft="12dip" android:paddingRight="12dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="@+id/TextView02"android:layout_width="wrap_content" android:layout_height="wrap_content"android:textSize="20sp"></TextView></RelativeLayout></TableRow><TableRow android:id="@+id/TableRow03" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout03"android:paddingLeft="12dip" android:paddingRight="12dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="@+id/TextView03"android:layout_width="wrap_content" android:layout_height="wrap_content"android:textSize="20sp"></TextView></RelativeLayout></TableRow><TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout04"android:paddingLeft="12dip" android:paddingRight="12dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><TextView android:id="@+id/TextView04"android:layout_width="wrap_content" android:layout_height="wrap_content"android:textSize="20sp"></TextView></RelativeLayout></TableRow><TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content"android:layout_height="wrap_content"><RelativeLayout android:id="@+id/RelativeLayout05"android:paddingLeft="40dip" android:paddingRight="40dip"android:paddingTop="10dip" android:paddingBottom="10dip"android:layout_width="wrap_content" android:layout_height="wrap_content"><Button android:text="返回上一个页面" android:id="@+id/btn_back"android:layout_width="wrap_content" android:layout_height="wrap_content"></Button></RelativeLayout></TableRow></TableLayout></LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.easyway.android.weather.switchwidget"      android:versionCode="1"      android:versionName="1.0">     <uses-sdk android:minSdkVersion="14" />         <application android:icon="@drawable/ic_launcher" android:label="@string/app_name">                <activity android:name=".ActivityBundle"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity android:name=".ResultActivity"/>    </application></manifest> 

更多相关文章

  1. android minui fb显示相关函数
  2. android 获取控件大小
  3. Android(安卓)EditText默认不弹出输入法,以及获取光标,修改输入法E
  4. Bitmap,使用Matrix对图像几何变换
  5. Android(安卓)如何获取SDCard 内存(二)
  6. cocos2d-x在android中响应返回键编译报错的bug分析
  7. Android(安卓)利用ViewPager、Fragment、PagerTabStrip实现多页
  8. 热修复
  9. Android(安卓)应用跳转到指定QQ临时聊天界面

随机推荐

  1. Android(安卓)认识EventBus到原理解析
  2. linux下如何为刚安装好的Eclipse在桌面建
  3. android 选择图片(从手机照相机或手机图
  4. Android游戏引擎AndEngine使用注意事项
  5. Android 笔记.代码段
  6. Android(安卓)JVM的运行过程
  7. Android上传图片裁剪功能
  8. Android例子—常用系统Intent合集
  9. Android 开发技巧集合
  10. android 本地化和国际化