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入门到精通教程
查看: 723|回复: 0

[实例教程]Android 小项目之---标准体重测量仪:Bundle对象的

[复制链接]

该用户从未签到

发表于 2011-10-22 13:03:25 | 显示全部楼层 |阅读模式
 我承认有点儿标题党了,呵呵。其实就只是一个Activity跳转页面然后接收值做处理的例子而已。
  废话不多说,直接进入正题。
  首先我们利用网友用java编写的基于android的可视化GUI布局拖拉工具程序 --DroidDraw。(点击这里下载)布局以下界面:





此页面位于res/layout/main.xml。
制作接收值页面,页面如下:



此页面位于res/layout/mainlayout.xml,到此为止准备工作全部做好了,接下来正式进入 我们的代码实现功能。。
  主页面代码位于src/cn.terry/BundleObject.java
  代码如下:
import android.app.Activity;

import android.app.AlertDialog;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.*;

import android.content.DialogInterface;

import android.content.Intent;

import android.graphics.Color;

public class BundleObject extends Activity {

private Button mButton;

private EditText mEditText;

private RadioGroup mRadioGroup;

private double height;

private String Sex;

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mButton=(Button)findViewById(R.id.confirm);

mButton.setOnClickListener(new OnClickListener() {



@Override

public void onClick(View v) {

// TODO Auto-generated method stub

mEditText=(EditText)findViewById(R.id.heigt);

if(mEditText.getText().toString().length()==0)

{

/* AlertDialog builder = new AlertDialog.Builder(BundleObject.this).create();

builder.setTitle("提示");

builder.setMessage("请输入您的身高!!");

builder.show();*/

new AlertDialog.Builder(BundleObject.this)

.setMessage("请输入您的身高")

.setTitle("提示")

.setNeutralButton("确定",new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

mEditText.setHighlightColor(Color.RED);

}

}).create()

.show();

return;

}

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

height=Double.parseDouble(mEditText.getText().toString());

if(mRadioGroup.getCheckedRadioButtonId()==R.id.M)

{

Sex="M";

}

else

{

Sex="F";

}

Intent intent=new Intent();

intent.setClass(BundleObject.this, Next.class);

Bundle bun=new Bundle();

bun.putDouble("Height", height);

bun.putString("Sex", Sex);

intent.putExtras(bun);

startActivity(intent);

BundleObject.this.finish();

}

});

}

}
在此有一点想让大家注意的是:弹出对话框的时候AlertDialog.Builder()这个方法在1.5以上都要加上类名.this 比如 我的页面的名字叫BundleObject.java就必须如下写下

AlertDialog.Builder(BundleObject.this)
1.5以下的版本直接this即可。。 到此为止己经完成了一半的功能了,那么在Acitivity2(Next.java)要如何接收来自Activity1(BundleObject.java)传递过来的数据呢?试想,在Activity1是以Bundle封装对象,自然在Activity2亦是以Bundle的方式来解开封装的数据咯;程序中以 Bundle bun=this.getIntent().getExtras();
这样的方法来取得Bundle对象传递过来的性别与身高,经过计算之后,显示在屏幕上。废话到此为止,第二个页面的处理程序如下: import java.text.DecimalFormat;

import java.text.NumberFormat;

import android.content.Intent;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.*;

public class Next extends Activity {

private TextView mTextView01;

private TextView mTextView02;

private Button mButton1;

private String Sex;

private double Height;

private String SextText;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.mainlayout);

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

Sex=bun.getString("Sex");

Height=bun.getDouble("Height");

if(Sex.equals("M"))

{

SextText="男性";

}

else

{

SextText="女性";

}

//取得标准体重

String Weight=getWeight(Sex, Height);

mTextView01=(TextView)findViewById(R.id.TextView01);

mTextView02=(TextView)findViewById(R.id.TextView02);

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

"您的身高为:" + Height + "cm";

String result2= "您的标准体重为:" + Weight +"千克";

mTextView01.setText(result);

mTextView02.setText(result2);



mButton1=(Button)findViewById(R.id.Button03);

mButton1.setOnClickListener(new OnClickListener() {



@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intent=new Intent();

intent.setClass(Next.this, BundleObject.class);

startActivity(intent);

Next.this.finish();

}

});

}







//四舍五入的方法

private String format(double num)

{

NumberFormat formatter=new DecimalFormat("0.00");

String s=formatter.format(num);

return s;

}

//取得体重

public 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;

}

}
有一点需要大家注意的是,如果要在新建的项目多新建一个处理类那必需在配置文件为他显示声明,程序才会运行通过,这里配置文件java的命名方式如下:AndroidManifest.xml  相当于asp.net 的web.config为了代码的完整性,我顺便把配置文件也贴出来,高手可以直接跳过 <manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="cn.terry"

android:versionCode="1"

android:versionName="1.0">

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

<activity android:name=".BundleObject"

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

</application>





</manifest>
红色字体是新建类的名字。至此程序大功告成程序源码:点击下载  BundleObject.rar (51.03 KB, 下载次数: 4)
回复

使用道具 举报

该用户从未签到

发表于 2011-10-22 13:03:36 | 显示全部楼层

Re:[实例教程]Android

学习一下
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 19:17 , Processed in 0.385384 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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