实验1:标准体重计算器

一.任务要求

如果是男性,标准体重=(身高-80*0.7

如果是女性,标准体重=(身高-70*0.6

二.训练目标。

1) 掌握RadioButton组件的使用

2) Intent的使用

3) 掌握如何在不同Activity之间通过Bundle传递数据。

三.代码

01.package com.test.weightcalculator;  
02.  
03.import android.app.Activity;  
04.import android.content.Intent;  
05.import android.os.Bundle;  
06.import android.view.Menu;  
07.import android.view.View;  
08.import android.view.View.OnClickListener;  
09.import android.widget.Button;  
10.import android.widget.EditText;  
11.import android.widget.RadioButton;  
12.import android.widget.RadioGroup;  
13.  
14.public class MainActivity extends Activity {  
15.      
16.    String Sex;  
17.    private RadioGroup sex;  
18.    private EditText height;  
19.    private RadioButton sex_choose;  
20.    private Button calculator;  
21.    @Override  
22.    protected void onCreate(Bundle savedInstanceState) {  
23.        super.onCreate(savedInstanceState);  
24.        setContentView(R.layout.activity_main);  
25.          
26.        sex = (RadioGroup) findViewById(R.id.rg);  
27.          
28.        sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  
29.            @Override  
30.            public void onCheckedChanged(RadioGroup group, int checkedId) {  
31.                sex_choose = (RadioButton)findViewById(sex.getCheckedRadioButtonId());  
32.                Sex = sex_choose.getText().toString();  
33.            }  
34.        });  
35.          
36.        height = (EditText) findViewById(R.id.et1);  
37.        calculator = (Button) findViewById(R.id.btn1);  
38.        calculator.setOnClickListener(new ClickHandler());  
39.          
40.    }  
41.  
42.    class ClickHandler implements OnClickListener  
43.    {  
44.        @Override  
45.        public void onClick(View view)  
46.        {  
47.            String Height = height.getText().toString();  
48.            Intent intent=new Intent();  
49.            intent.setClass(getApplicationContext(), CalculatorActivity.class);           
50.            Bundle bundle=new Bundle();  
51.            bundle.putString("height", Height);  
52.            bundle.putString("sex", Sex);  
53.            intent.putExtras(bundle);  
54.            startActivity(intent);            
55.        }  
56.          
57.    }  
58.    public boolean onCreateOptionsMenu(Menu menu) {  
59.        // Inflate the menu; this adds items to the action bar if it is present.  
60.        getMenuInflater().inflate(R.menu.main, menu);  
61.        return true;  
62.    }  
63.}  

CalculatorActivity:





[java] view plain copy 
01.package com.test.weightcalculator;  
02.  
03.import android.app.Activity;  
04.import android.os.Bundle;  
05.import android.view.Menu;  
06.import android.view.MenuItem;  
07.import android.widget.TextView;  
08.  
09.public class CalculatorActivity extends Activity {  
10.  
11.    double weight;  
12.    private TextView tvSec;  
13.    @Override  
14.    protected void onCreate(Bundle savedInstanceState) {  
15.        super.onCreate(savedInstanceState);  
16.        setContentView(R.layout.activity_calculator);  
17.        tvSec=(TextView) findViewById(R.id.tvSec);        
18.        Bundle bundle=getIntent().getExtras();  
19.            String height=bundle.getString("height");  
20.        String sex=bundle.getString("sex");  
21.        double Height=Double.valueOf(height).doubleValue();  
22.        if(sex=="女性")  
23.            weight = (Height - 70) * 0.6;  
24.        else  
25.            weight = (Height - 80) * 0.7;  
26.        tvSec.setText("你是一位"+sex+"\n"+"你的身高是"+height+"厘米\n"+"你的标准体重是"+weight+"公斤");  
27.    }  
28.  
29.    @Override  
30.    public boolean onCreateOptionsMenu(Menu menu) {  
31.        // Inflate the menu; this adds items to the action bar if it is present.  
32.        getMenuInflater().inflate(R.menu.calculator, menu);  
33.        return true;  
34.    }  
35.  
36.    @Override  
37.    public boolean onOptionsItemSelected(MenuItem item) {  
38.        // Handle action bar item clicks here. The action bar will  
39.        // automatically handle clicks on the Home/Up button, so long  
40.        // as you specify a parent activity in AndroidManifest.xml.  
41.        int id = item.getItemId();  
42.        if (id == R.id.action_settings) {  
43.            return true;  
44.        }  
45.        return super.onOptionsItemSelected(item);  
46.    }  
47.}  



activity_main.xml:





[html] view plain copy 
01.<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
02.    xmlns:tools="http://schemas.android.com/tools"  
03.    android:layout_width="match_parent"  
04.    android:layout_height="match_parent"  
05.    android:paddingBottom="@dimen/activity_vertical_margin"  
06.    android:paddingLeft="@dimen/activity_horizontal_margin"  
07.    android:paddingRight="@dimen/activity_horizontal_margin"  
08.    android:paddingTop="@dimen/activity_vertical_margin"  
09.    tools:context="com.test.weightcalculator.MainActivity" >  
10.  
11.    <TextView  
12.        android:id="@+id/tv1"  
13.        android:layout_width="wrap_content"  
14.        android:layout_height="wrap_content"  
15.        android:layout_alignParentTop="true"  
16.        android:layout_centerHorizontal="true"  
17.        android:layout_marginTop="44dp"  
18.        android:text="@string/title"  
19.        android:textAppearance="?android:attr/textAppearanceLarge" />  
20.  
21.    <TextView  
22.        android:id="@+id/tv3"  
23.        android:layout_width="wrap_content"  
24.        android:layout_height="wrap_content"  
25.        android:layout_alignLeft="@+id/tv2"  
26.        android:layout_below="@+id/tv2"  
27.        android:layout_marginTop="72dp"  
28.        android:text="@string/height"  
29.        android:textAppearance="?android:attr/textAppearanceMedium" />  
30.  
31.    <RadioGroup  
32.        android:id="@+id/rg"  
33.        android:layout_width="wrap_content"  
34.        android:layout_height="wrap_content"  
35.        android:layout_above="@+id/tv3"  
36.        android:layout_alignBottom="@+id/tv2"          
37.        android:layout_alignLeft="@+id/tv1"  
38.        android:orientation="horizontal" >  
39.  
40.        <RadioButton  
41.            android:id="@+id/rb1"  
42.            android:layout_width="wrap_content"  
43.            android:layout_height="wrap_content"  
44.            android:text="@string/male" />  
45.  
46.        <RadioButton  
47.            android:id="@+id/rb2"  
48.            android:layout_width="wrap_content"  
49.            android:layout_height="wrap_content"  
50.            android:text="@string/female" />  
51.    </RadioGroup>  
52.  
53.    <Button  
54.        android:id="@+id/btn1"  
55.        android:layout_width="wrap_content"  
56.        android:layout_height="wrap_content"  
57.        android:layout_below="@+id/et1"  
58.        android:layout_centerHorizontal="true"  
59.        android:layout_marginTop="85dp"  
60.        android:text="@string/calculate" />  
61.  
62.    <TextView  
63.        android:id="@+id/tv2"  
64.        android:layout_width="wrap_content"  
65.        android:layout_height="wrap_content"  
66.        android:layout_alignParentLeft="true"  
67.        android:layout_below="@+id/tv1"  
68.        android:layout_marginTop="38dp"  
69.        android:text="@string/sex"  
70.        android:textAppearance="?android:attr/textAppearanceMedium" />  
71.  
72.    <EditText  
73.        android:id="@+id/et1"  
74.        android:layout_width="wrap_content"  
75.        android:layout_height="wrap_content"  
76.        android:layout_alignBottom="@+id/tv3"  
77.        android:layout_alignLeft="@+id/rg"  
78.        android:layout_alignParentRight="true"  
79.        android:ems="10"  
80.        android:hint="@string/input"  
81.        android:inputType="numberDecimal" >  
82.  
83.        <requestFocus />  
84.    </EditText>  
85.  
86.</RelativeLayout>  



activity_calculator.xml:





[html] view plain copy 
01.<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
02.    xmlns:tools="http://schemas.android.com/tools"  
03.    android:layout_width="match_parent"  
04.    android:layout_height="match_parent"  
05.    android:paddingBottom="@dimen/activity_vertical_margin"  
06.    android:paddingLeft="@dimen/activity_horizontal_margin"  
07.    android:paddingRight="@dimen/activity_horizontal_margin"  
08.    android:paddingTop="@dimen/activity_vertical_margin"  
09.    tools:context="com.test.weightcalculator.CalculatorActivity" >  
10.  
11.    <TextView  
12.        android:id="@+id/tvSec"  
13.        android:layout_width="wrap_content"  
14.        android:layout_height="wrap_content"  
15.        android:layout_centerHorizontal="true"  
16.        android:layout_centerVertical="true"  
17.        android:textAppearance="?android:attr/textAppearanceMedium" />  
18.  
19.</RelativeLayout>  
四.实验结果图

五.遇到的问题。

性别选择只能选择一项。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值