• 沒有找到結果。

Bundle 对象的实现

在文檔中 开放手机联盟 (頁 99-105)

① 新建工程

② 修改 main.xml 布局,添加 UI 元素

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

<AbsoluteLayout

android:id="@+id/widget0"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

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

<TextView

android:id="@+id/showText"

android:layout_width="wrap_content"

android:layout_height="26px"

android:text="计算你的标准体重!"

android:textSize="25px"

android:layout_x="65px"

android:layout_y="21px">

</TextView>

<TextView

android:id="@+id/text_Sex"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="性别:"

android:layout_x="71px"

android:layout_y="103px">

</TextView>

<TextView

android:id="@+id/text_Height"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="身高:"

android:layout_x="72px"

android:layout_y="169px">

</TextView>

<RadioGroup

android:id="@+id/radioGroup"

android:layout_width="wrap_content"

android:layout_height="37px"

android:orientation="horizontal"

15

③ 新建 mylayout.xml,并添加 UI 元素 android:layout_x="124px"

android:layout_y="101px">

<RadioButton

android:id="@+id/Sex_Man"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="男">

</RadioButton>

<RadioButton

android:id="@+id/Sex_Woman"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="女">

</RadioButton>

</RadioGroup>

<EditText

android:id="@+id/height_Edit"

android:layout_width="123px"

android:layout_height="wrap_content"

android:text=""

android:textSize="18sp"

android:layout_x="124px"

android:layout_y="160px">

</EditText>

<Button

android:id="@+id/button_OK"

android:layout_width="80px"

android:layout_height="wrap_content"

android:text="计算"

android:layout_x="125px"

android:layout_y="263px">

</Button>

</AbsoluteLayout>

<?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/text1"

16

④ 新建一个 BMIActivity.java

⑤ 在 AndroidManifest.xml 添加 Activity 定义 android:layout_height="wrap_content"

android:textSize="20sp"

android:layout_x="50px"

android:layout_y="72px"

></TextView>

</AbsoluteLayout>

package package package

package zyf.Ex10_UI;

import import import

import android.app.Activity;

import import import

import android.os.Bundle;

public public public

public classclassclassclass BMIActivity extendsextendsextendsextends Activity {

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

@Override public public public

public voidvoidvoidvoid onCreate(Bundle savedInstanceState) { super

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

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

package="zyf.Ex10_UI"

android:versionCode="1"

android:versionName="1.0">

<application android:icon="@drawable/icon"

android:label="@string/app_name">

<activity android:name=".Ex10_UI"

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="BMIActivity"></activity>

</application>

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

</manifest>

17

⑥ 修改 BMIActivity.java 内容 package

package package

package zyf.Ex10_UI;

/* import 相关class */

import import import

import java.text.DecimalFormat;

import import import

import java.text.NumberFormat;

import import import

import android.app.Activity;

import import import

import android.os.Bundle;

import import import

import android.widget.TextView;

public public public

public classclassclassclass BMIActivity extendsextendsextendsextends Activity {

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

@Override public public public

public voidvoidvoidvoid onCreate(Bundle savedInstanceState) { super

super super

super.onCreate(savedInstanceState);

/* 加载main.xml Layout */

setContentView(R.layout.mylayout);

/* 取得Intent 中的Bundle 对象 */

Bundle bunde = thisthisthisthis.getIntent().getExtras();

/* 取得Bundle 对象中的数据 */

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

double double double

double height = bunde.getDouble("height");

/* 判断性别 */

String sexText = "";

if if if

if (sex.equals("M")) { sexText = "男性";

} elseelseelseelse {

sexText = "女性";

}

/* 取得标准体重 */

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

/* 设置输出文字 */

TextView tv1 = (TextView) findViewById(R.id.text1);

tv1.setText("你是一位" + sexText + "\n你的身高是" + height +

"厘米\n你的标准体重是"+ weight + "公斤");

}

/* 四舍五入的method */

private private private

private String format(doubledoubledoubledouble num) {

NumberFormat formatter = newnewnewnew DecimalFormat("0.00");

String s = formatter.format(num);

return return return return s;

}

18

⑦ 修改 mainActivity.java 内容 private

private private

private String getWeight(String sex, doubledoubledoubledouble height) { String weight = "";

if if if

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

weight = format((height - 80) * 0.7);

} elseelseelseelse {

weight = format((height - 70) * 0.6);

} return return return

return weight;

} }

package package package

package zyf.Ex10_UI;

/* import 相关class */

import import import

import android.app.Activity;

import import import

import android.content.Intent;

import import import

import android.os.Bundle;

import import import

import android.view.View;

import import import

import android.widget.Button;

import import import

import android.widget.EditText;

import import import

import android.widget.RadioButton;

public public public

public classclassclassclass Ex10_UI extendsextendsextendsextends Activity {

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

@Override public public public

public voidvoidvoidvoid onCreate(Bundle savedInstanceState) { super

super super

super.onCreate(savedInstanceState);

/* 载入main.xml Layout */

setContentView(R.layout.main);

/* 以findViewById()取得Button 对象,并添加onClickListener */

Button ok = (Button) findViewById(R.id.button_OK);

ok.setOnClickListener(newnewnewnew Button.OnClickListener() { public

public public

public voidvoidvoidvoid onClick(View v) { /* 取得输入的身高 */

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

double double double

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

/* 取得选择的性别 */

String sex = "";

RadioButton rb1 = (RadioButton) findViewById(R.id.Sex_Man);

if if if

if (rb1.isChecked()) { sex = "M";

} elseelseelseelse {

19

⑧ 结果:

sex = "F";

}

/* new 一个Intent 对象,并指定class */

Intent intent = newnewnewnew Intent();

intent.setClass(Ex10_UI.thisthisthisthis, BMIActivity.classclassclassclass);

/* new 一个Bundle对象,并将要传递的数据传入 */

Bundle bundle = newnewnewnew Bundle();

bundle.putDouble("height", height);

bundle.putString("sex", sex);

/* 将Bundle 对象assign 给Intent */

intent.putExtras(bundle);

/* 调用Activity EX03_10_1 */

startActivity(intent);

} });

} }

20

在文檔中 开放手机联盟 (頁 99-105)