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 }