Android中返回数据到前一个Activity — startActivityForResult方法

Android中返回数据到前一个Activity —startActivityForResult方法
字号:[ 大 中 小 ]    发布日期:2010-1-14   发布者:android  浏览次数:2838次

Android中返回数据到前一个Activity —startActivityForResult方法

 

编号:A3GS_TA20100114004

 

描述

 

本文讲述了Android中返回数据到前一个Activity — startActivityForResult方法。

 

例子

 

有兴趣的朋友可以在登录后下载本文例子代码!

 

例子效果图

 

 

 

实现步骤

 

第一步:建立Android 工程:ActivityDemo。

                                                                   

第二步:编写Activity 的子类别:ActivityDemo,其程序代码如下:

 

package com.a3gs.activity;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.RadioGroup;

 

public class ActivityDemo extends Activity {

    private RadioGroup rg;

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

       

       Button btn = (Button) findViewById(R.id.btn);

       btn.setOnClickListener(new Button.OnClickListener(){

           @Override

           public void onClick(View v) {

              // TODO Auto-generated method stub

             EditText et = (EditText) findViewById(R.id.height);

              // 判断身高如果为空,则不提交

              if(et.getText().toString().equals("")) return;

              double height = Double.parseDouble(et.getText().toString());

             String sex = "";

              rg = (RadioGroup) findViewById(R.id.sex);

              if(rg.getCheckedRadioButtonId() == R.id.M) {

                 sex = "M";

             }

              if(rg.getCheckedRadioButtonId() == R.id.F) {

                 sex = "F";

             }

              // 用Bundle来绑定所要的数据

             Bundle bd = new Bundle();

             bd.putDouble("height", height);

             bd.putString("sex", sex);

             

              // 创建一个新的Intent,并将Bundle传进去

             Intent it = new Intent();

             it.putExtras(bd);

             it.setClass(ActivityDemo.this, Bundle2.class);

             startActivityForResult(it, RESULT_OK);

          }

       });

   }

    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

       // TODO Auto-generated method stub

       switch (resultCode) {

       case RESULT_OK:

          String sex = data.getStringExtra("sex");

           if(sex.equals("M")){

              rg.check(R.id.M);

          }else

              rg.check(R.id.F);

           break;

       default:

           break;

      }

   }

}

 

第三步:新建一个Activity 的子类别:Bundle2,其程序代码如下:

 

package com.a3gs.activity;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

 

public class Bundle2 extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

       setContentView(R.layout.myalyout);

       

       Bundle bundle = getIntent().getExtras();

       String sex = bundle.getString("sex");

       Double height = bundle.getDouble("height");

       String weight = this.getWeight(sex,height);

       String sexStr = "";

        if(sex.equals("M")){

       sexStr = "男性";

       }else

       sexStr = "女性";

       String result = "您是一位" + sexStr +

                   "\n您的身高为:" + height + "cm" +

                   "\n您的标准体重为:" + weight +"千克";

       TextView tv = (TextView) findViewById(R.id.tv);

       tv.setText(result);

       Button backBtn = (Button) findViewById(R.id.back);

       backBtn.setOnClickListener(new Button.OnClickListener(){

           @Override

           public void onClick(View v) {

              // TODO Auto-generated method stub

             Bundle2.this.setResult(RESULT_OK, getIntent());

             Bundle2.this.finish();

          }

       });

   }

, ,

    /* 四舍五入的method */

    private String format(double num)

   {

     NumberFormat formatter = new DecimalFormat("0.00");

     String s=formatter.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;

   }

}

 

第四步:修改res/layout/main.xml,其代码如下:

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:gravity="center_horizontal"

    >

<TextView 

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/title"

    android:gravity="center_horizontal"

    android:textSize="25px"

    />

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="horizontal"

    android:gravity="center_vertical|center_horizontal"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    >

    <TextView 

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="@string/myText"

       android:gravity="center_horizontal"

       android:textSize="20px"

    />

    <RadioGroup

    android:id="@+id/sex"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:orientation="horizontal"

    android:gravity="center_horizontal"

    android:textSize="20px"

    >

    <RadioButton

       android:id="@+id/M"

       android:checked="true"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="男"

       >

    </RadioButton>

    <RadioButton

       android:id="@+id/F"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="女"

       >

    </RadioButton>

    </RadioGroup>

</LinearLayout>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="horizontal"

    android:gravity="center_vertical|center_horizontal"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    >

    <TextView 

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="@string/myText1"

       android:gravity="center_horizontal"

       android:textSize="20px"

    />

    <EditText

       android:id="@+id/height"

       android:layout_width="80px"

    android:layout_height="wrap_content"

    android:text=""

    android:numeric="decimal"

    android:textSize="20px"

       />

    <TextView 

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="@string/myText2"

       android:gravity="center_horizontal"

       android:textSize="20px"

    />

</LinearLayout>

<Button

    android:id="@+id/btn"

    android:layout_width="130px"

    android:layout_height="wrap_content"

    android:text="@string/btnText"

    android:gravity="center_horizontal|center_vertical"

    android:textSize="20px"

    />

</LinearLayout>

 

第五步:修改res/layout/mylayout.xml,其代码如下:

 

<?xml version="1.0" encoding="utf-8"?>

  <AbsoluteLayout

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    xmlns:android="http://schemas.android.com/apk/res/android"

  >

    <TextView

      android:id="@+id/tv"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:textSize="20sp"

      android:layout_x="50px"

      android:layout_y="72px"

    >

    </TextView>

    <Button

    android:id="@+id/back"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:textSize="20sp"

       android:layout_x="80px"

       android:layout_y="152px"

       android:text="@string/backText"

    />

 </AbsoluteLayout>

 

第六步:修改AndroidManifest.xml,其内容如下:

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="com.a3gs.activity"

      android:versionCode="1"

      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".ActivityDemo"

                  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=".Bundle2"/>

    </application>

    <uses-sdk android:minSdkVersion="3" />

</manifest>

 

转载于:https://www.cnblogs.com/haihai88/archive/2011/08/26/6601284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值