Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 472|回复: 0

Android 基础 UI 编程之二-  Android学习

[复制链接]

该用户从未签到

发表于 2011-10-24 14:50:01 | 显示全部楼层 |阅读模式
本帖内容包括:


返回数据到前一个
不同 Activity 之间的数据传递





不同 Activity 之间的数据传递
Bundle 对象的实现


①新建工程
②修改 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"

androidrientation="horizontal"



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>

复制代码
③新建 mylayout.xml,并添加 UI 元素
<?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"



android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="20sp"

android:layout_x="50px"

android:layout_y="72px"

></TextView>

</AbsoluteLayout>
复制代码


④新建一个 BMIActivity.java
package zyf.Ex10_UI;

import android.app.Activity;

import android.os.Bundle;

public class BMIActivity extends Activity {

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

}
复制代码
⑤在AndroidManifest.xml 添加 Activity 定义
<?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>
复制代码


⑥修改BMIActivity.java 内容
package zyf.Ex10_UI;

/* import 相关class */

import java.text.DecimalFormat;

import java.text.NumberFormat;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class BMIActivity extends Activity {

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

/* 加载main.xml Layout */

setContentView(R.layout.mylayout);

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

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

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

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

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

/* 判断性别 */

String sexText = "";

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

sexText = "男性";



}



else {



sexText = "女性";

}

/* 取得标准体重 */

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

/* 设置输出文字 */

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

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

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

}





/* 四舍五入的method */

private String format(double num) {

NumberFormat formatter = new DecimalFormat("0.00");

String s = formatter.format(num);

return s;

}



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

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;

}

}
复制代码⑦修改mainActivity.java 内容
package zyf.Ex10_UI;

/* import 相关class */

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.RadioButton;

public class Ex10_UI extends Activity {

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

/* 载入main.xml Layout */

setContentView(R.layout.main);

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

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

ok.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v) {

/* 取得输入的身高 */

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

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

/* 取得选择的性别 */

String sex = "";

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

if (rb1.isChecked()) {

sex = "M";

} else {



sex = "F";

}

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

Intent intent = new Intent();

intent.setClass(Ex10_UI.this, BMIActivity.class);

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

Bundle bundle = new Bundle();

bundle.putDouble("height", height);

bundle.putString("sex", sex);

/* 将Bundle 对象assign 给Intent */

intent.putExtras(bundle);

/* 调用Activity EX03_10_1 */

startActivity(intent);

}

});

}

}
复制代码⑧结果:

返回数据到前一个 Activity




startActivityForResult 方法


①新建工程
②修改 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"



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:numeric="decimal"

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>
复制代码
③新建一个 mylayout.xml 布局,添加 UI 元素
<?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"



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/button_back"

android:layout_width="100px"

android:layout_height="48px"

android:text="回上一页"

android:layout_x="110px"

android:layout_y="180px"

></Button>

</AbsoluteLayout>
复制代码
④新建一个SecondActivity.java 的 Activity 子类
package zyf.Ex11_UI_A;





import android.app.Activity;

import android.os.Bundle;





public class BMIActivity extends Activity {

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

}
复制代码
⑤在AndroidManifest.xml 中添加 SecondActivity 这个 Activity
<?xml version="1.0" encoding="utf-8"?>

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

package="zyf.Ex11_UI_A"

android:versionCode="1"

android:versionName="1.0">



<application



android:icon="@drawable/icon"



android:label="@string/app_name">

<activity android:name=".Ex11_UI_A"

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>
复制代码


⑥修改mainActivity.java 代码
package zyf.Ex11_UI_A;

import android.app.Activity;/* import 相关class */

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.RadioButton;

import android.widget.Toast;

public class Ex11_UI_A extends Activity {

protected int my_requestCode = 1550;

private EditText edit_height;

private RadioButton radiobutton_Man, radiobutton_Woman;

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

/* 载入main.xml Layout */

setContentView(R.layout.main);

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

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

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

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

radiobutton_Woman = (RadioButton) findViewById(R.id.Sex_Woman);

ok.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v) {

try {

/* 取得输入的身高 */

double height = Double.parseDouble(edit_height.getText()

.toString());

/* 取得选择的性别 */

String sex = "";

if (radiobutton_Man.isChecked()) {

sex = "M";

} else {

sex = "F";

}



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

Intent intent = new Intent();

intent.setClass(Ex11_UI_A.this, BMIActivity.class);

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

Bundle bundle = new Bundle();

bundle.putDouble("height", height);

bundle.putString("sex", sex);

/* 将Bundle 对象assign 给Intent */

intent.putExtras(bundle);

/* 调用Activity EX03_10_1 */

startActivityForResult(intent, my_requestCode);

} catch (Exception e) {

// TODO: handle exception

Toast.makeText(Ex11_UI_A.this,

R.string.errorString, Toast.LENGTH_LONG).show();

}



}





新重写方法,等待返回结果



});

}

@Override

protected void onActivityResult(int requestCode, int resultCode,

Intent data) {

// TODO Auto-generated method stub

super.onActivityResult(requestCode, resultCode, data);

switch (resultCode) {

case RESULT_OK:

/* 取得来自Activity2 的数据,并显示于画面上 */

Bundle bunde = data.getExtras();

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

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

edit_height.setText("" + height);

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

radiobutton_Man.setChecked(true);

} else {

radiobutton_Woman.setChecked(true);

}

break;

default:

break;

}

}

}
复制代码
⑦修改SecondActivity.java 代码
package zyf.Ex11_UI_A;

/* import 相关class */

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.widget.Button;

import android.widget.TextView;





public class BMIActivity extends Activity {

private Intent intent;

private Bundle bunde;

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

/* 加载main.xml Layout */

setContentView(R.layout.mylayout);





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

intent = this.getIntent();

bunde = intent.getExtras();





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

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

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

/* 判断性别 */

String sexText = "";

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

sexText = "男性";

} else {

sexText = "女性";

}

/* 取得标准体重 */

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

/* 设置输出文字 */

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

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

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



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

Button b1 = (Button) findViewById(R.id.button_back);

b1.setOnClickListener(new Button.OnClickListener() {





@Override



public void onClick(View v) {



返回刚刚接收的 Intent



// TODO Auto-generated method stub

/* 返回result 回上一个activity */

BMIActivity.this.setResult(RESULT_OK, intent);

/* 结束这个activity */

BMIActivity.this.finish();

}

});

}

/* 四舍五入的method */

private String format(double num) {

NumberFormat formatter = new DecimalFormat("0.00");

String s = formatter.format(num);

return s;

}

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

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;

}

}
复制代码
⑧结果


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 11:47 , Processed in 0.410291 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表