深入浅出Android:纪念人生的第一个android程序(BMI)

1、界面设计:activity_main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     tools:context=".MainActivity" >
 7 
 8     <TextView
 9         android:id="@+id/hlabel"
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:text="身高(cm):" 
13         android:layout_alignParentTop="true"
14         />
15     <EditText android:id="@+id/height"
16         android:layout_width="fill_parent"
17         android:layout_height="wrap_content"
18         android:layout_toRightOf="@id/hlabel"
19         android:numeric="integer"
20         android:text=""
21         android:layout_alignParentTop="true"
22         />
23     <TextView
24         android:id="@+id/wlabel"
25         android:layout_width="wrap_content"
26         android:layout_height="wrap_content"
27         android:layout_alignParentLeft="true"
28         android:layout_below="@id/height"
29         android:text="体重(kg):"
30         />
31     <EditText android:id="@+id/weight"
32         android:layout_width="fill_parent"
33         android:layout_height="wrap_content"
34         android:layout_below="@id/height"
35         android:layout_toRightOf="@id/wlabel"
36         android:numeric="integer"
37         android:text=""
38         android:layout_alignTop="@id/wlabel"
39         />
40     <Button android:id="@+id/submit"
41         android:layout_width="wrap_content"
42         android:layout_height="wrap_content"
43         android:layout_below="@id/weight"
44         android:text="@string/bmi_btn"
45         />
46     <TextView android:id="@+id/result"
47         android:layout_width="fill_parent"
48         android:layout_height="wrap_content"
49         android:text=""
50         android:layout_below="@id/submit"
51         />
52     <TextView android:id="@+id/suggest"
53         android:layout_width="fill_parent"
54         android:layout_height="wrap_content"
55         android:text=""
56         android:layout_below="@id/result"
57         />
58 </RelativeLayout>

2、res/values/strings.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3 
 4     <string name="app_name">BMI</string>
 5         <string name="height">身高(cm)</string>
 6         <string name="weight">体重(kg)</string>
 7         <string name="bmi_btn">计算BMI值</string>
 8         <string name="bmi_result">你的BMI值是</string>
 9     <string name="hello_world">Hello world!</string>
10     <string name="menu_settings">Settings</string>
11 
12 </resources>

3、res/values/advice.xml

1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3     <string name="advice_light">你该多吃点</string>
4     <string name="advice_average">体型很棒喔</string>
5     <string name="advice_heavy">你该节食了</string>
6     </resources>

4、主程序

MainActivity.java
 1 package example.bmi;
 2 
 3 import java.text.DecimalFormat;
 4 
 5 import android.os.Bundle;
 6 import android.app.Activity;
 7 import android.view.Menu;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.Button;
11 import android.widget.EditText;
12 import android.widget.TextView;
13 
14 public class MainActivity extends Activity {
15 
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20         
21         //Listen for button clicks
22         Button button=(Button)findViewById(R.id.submit);
23         button.setOnClickListener(calcBMI);
24     }
25     
26     private OnClickListener calcBMI=new OnClickListener()
27     {
28         public void onClick(View v)
29         {
30             DecimalFormat nf=new DecimalFormat("0.00");
31             EditText fieldheight=(EditText)findViewById(R.id.height);
32             EditText fieldweight=(EditText)findViewById(R.id.weight);
33             double height=Double.parseDouble(fieldheight.getText().toString())/100;
34             double weight=Double.parseDouble(fieldweight.getText().toString());
35             double BMI=weight/(height*height);
36             TextView result=(TextView)findViewById(R.id.result);
37             result.setText("Your BMI is"+nf.format(BMI));
38             //give health advice
39             TextView fieldsuggest=(TextView)findViewById(R.id.suggest);
40             if(BMI>25)
41             {
42                 fieldsuggest.setText(R.string.advice_heavy);
43             }
44             else if(BMI<20)
45             {
46                 fieldsuggest.setText(R.string.advice_light);
47                }
48             else
49             {
50                 fieldsuggest.setText(R.string.advice_average);
51             }
52         }    
53     };
54 
55     @Override
56     public boolean onCreateOptionsMenu(Menu menu) {
57         // Inflate the menu; this adds items to the action bar if it is present.
58         getMenuInflater().inflate(R.menu.activity_main, menu);
59         return true;
60     }
61     
62 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值