1、MainActivity.java
1 package example.bmi; 2 3 import java.text.DecimalFormat; 4 5 import android.net.Uri; 6 import android.os.Bundle; 7 import android.app.Activity; 8 import android.app.AlertDialog; 9 import android.content.ClipData.Item; 10 import android.content.DialogInterface; 11 import android.content.Intent; 12 import android.view.Menu; 13 import android.view.MenuItem; 14 import android.view.View; 15 import android.view.View.OnClickListener; 16 import android.widget.Button; 17 import android.widget.EditText; 18 import android.widget.TextView; 19 20 public class MainActivity extends Activity { 21 22 @Override 23 protected void onCreate(Bundle savedInstanceState) { 24 super.onCreate(savedInstanceState); 25 setContentView(R.layout.activity_main); 26 27 findViews(); 28 setListensers(); 29 } 30 private Button button_calc; 31 private EditText field_height; 32 private EditText field_weight; 33 private TextView view_result; 34 private TextView view_suggest; 35 private void findViews() 36 { 37 button_calc=(Button)findViewById(R.id.submit); 38 field_height=(EditText)findViewById(R.id.height); 39 field_weight=(EditText)findViewById(R.id.weight); 40 view_result=(TextView)findViewById(R.id.result); 41 view_suggest=(TextView)findViewById(R.id.suggest); 42 } 43 private void setListensers() 44 { 45 button_calc.setOnClickListener(calcBMI); 46 } 47 private Button.OnClickListener calcBMI=new Button.OnClickListener() 48 { 49 public void onClick(View v) 50 { 51 DecimalFormat nf=new DecimalFormat("0.00"); 52 53 double height=Double.parseDouble(field_height.getText().toString())/100; 54 double weight=Double.parseDouble(field_weight.getText().toString()); 55 double BMI=weight/(height*height); 56 view_result.setText(getText(R.string.bmi_result)+nf.format(BMI)); 57 //give health advice 58 if(BMI>25) 59 { 60 view_suggest.setText(R.string.advice_heavy); 61 } 62 else if(BMI<20) 63 { 64 view_suggest.setText(R.string.advice_light); 65 } 66 else 67 { 68 view_suggest.setText(R.string.advice_average); 69 } 70 // openOptionsDialog(); 71 } 72 }; 73 protected static final int MENU_ABOUT = Menu.FIRST; 74 protected static final int MENU_Quit = Menu.FIRST+1; 75 76 @Override 77 public boolean onCreateOptionsMenu(Menu menu) 78 { 79 super.onCreateOptionsMenu(menu); 80 menu.add(0, MENU_ABOUT, 0, "关于"); 81 menu.add(0, MENU_Quit, 0, "结束"); 82 return true; 83 } 84 public boolean onOptionsItemSelected(MenuItem item) 85 { 86 super.onOptionsItemSelected(item); 87 switch(item.getItemId()) 88 { 89 case MENU_ABOUT: 90 openOptionsDialog(); 91 break; 92 case MENU_Quit: 93 finish(); 94 break; 95 } 96 return true; 97 } 98 private void openOptionsDialog() 99 { 100 new AlertDialog.Builder(MainActivity.this) 101 .setTitle(R.string.about_title) 102 .setMessage(R.string.about_msg) 103 .setPositiveButton(R.string.ok_label, 104 new DialogInterface.OnClickListener() { 105 public void onClick( 106 DialogInterface dialoginterface,int i){ 107 } 108 109 }) 110 .setNegativeButton(R.string.homepage_label, 111 new DialogInterface.OnClickListener() { 112 113 @Override 114 public void onClick(DialogInterface dialog, int which) { 115 // TODO Auto-generated method stub 116 Uri uri=Uri.parse(getString(R.string.homepage_uri)); 117 Intent intent=new Intent(Intent.ACTION_VIEW,uri); 118 startActivity(intent); 119 } 120 }) 121 .show(); 122 } 123 124 /* @Override 125 public boolean onCreateOptionsMenu(Menu menu) { 126 // Inflate the menu; this adds items to the action bar if it is present. 127 getMenuInflater().inflate(R.menu.activity_main, menu); 128 return true; 129 } 130 */ 131 }