package com.demo.android.abmi;
import java.text.DecimalFormat;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
//aBMI is for British system
public class Abmi extends Activity {
private static final String TAG = "aBmi";
public static final String PREF = "BMI_PREF";
public static final String PREF_FEET = "BMI_Feet";
public static final String PREF_INCH = "BMI_Inch";
/*
static final String[] feets= new String[] {
"2 Feet",
"3 Feet",
"4 Feet",
"5 Feet",
"6 Feet",
"7 Feet",
"8 Feet"
};
*/
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//force locale
/*
Resources res = getResources();
Configuration conf = res.getConfiguration();
conf.locale = Locale.TRADITIONAL_CHINESE;
DisplayMetrics dm = res.getDisplayMetrics();
res.updateConfiguration(conf, dm);
*/
setContentView(R.layout.main);
findViews();
setListensers();
restorePrefs();
/*
ArrayAdapter<String> adapter_feet = new ArrayAdapter<String>(
this,
android.R.layout.simple_spinner_item,
feets);
adapter_feet.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
*/
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
/*
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
field_weight.setText(savedInstanceState.getString("WEIGHT")+"1");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
outState.putString("WEIGHT", field_weight.getText().toString());
}
*/
// Restore preferences
private void restorePrefs() {
SharedPreferences settings = getSharedPreferences(PREF, 0);
//set field
Integer pref_feet = settings.getInt(PREF_FEET, 5);
field_feet.setSelection(pref_feet);
field_inch.requestFocus();
Integer pref_inch = settings.getInt(PREF_INCH, 0);
field_inch.setSelection(pref_inch);
field_weight.requestFocus();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
// Save user preferences.
SharedPreferences settings = getSharedPreferences(PREF, 3);
settings.edit()
.putInt(PREF_FEET, field_feet.getSelectedItemPosition())
.putInt(PREF_INCH, field_inch.getSelectedItemPosition())
.commit();
}
private Button button_calc;
//private EditText field_feet;
//private EditText field_inch;
private Spinner field_feet;
private Spinner field_inch;
private EditText field_weight;
private TextView view_result;
private TextView view_suggest;
private void findViews() {
Log.d(TAG, "find Views");
button_calc = (Button) findViewById(R.id.submit);
//field_feet = (EditText) findViewById(R.id.feet);
//field_inch = (EditText) findViewById(R.id.inch);
field_feet = (Spinner) findViewById(R.id.feet);
field_inch = (Spinner) findViewById(R.id.inch);
field_weight = (EditText) findViewById(R.id.weight);
view_result = (TextView) findViewById(R.id.result);
view_suggest = (TextView) findViewById(R.id.suggest);
ArrayAdapter<CharSequence> adapter_feet = ArrayAdapter.createFromResource(
this, R.array.feets, android.R.layout.simple_spinner_item);
adapter_feet.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
field_feet.setAdapter(adapter_feet);
ArrayAdapter<CharSequence> adapter_inch = ArrayAdapter.createFromResource(
this, R.array.inches, android.R.layout.simple_spinner_item);
adapter_inch.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
field_inch.setAdapter(adapter_inch);
}
//Listen for button clicks
private void setListensers() {
Log.d(TAG, "set Listensers");
field_feet.setOnItemSelectedListener(getFeet);
field_inch.setOnItemSelectedListener(getInch);
button_calc.setOnClickListener(calcUsBMI);
}
private int feet;
private int inch;
private Spinner.OnItemSelectedListener getFeet = new Spinner.OnItemSelectedListener() {
public void onItemSelected(AdapterView parent, View v, int position, long id) {
feet = parent.getSelectedItemPosition()+2;
}
public void onNothingSelected(AdapterView parent) {
}
};
private Spinner.OnItemSelectedListener getInch = new Spinner.OnItemSelectedListener() {
public void onItemSelected(AdapterView parent, View v, int position, long id) {
inch = parent.getSelectedItemPosition()+1;
}
public void onNothingSelected(AdapterView parent) {
}
};
private Button.OnClickListener calcUsBMI = new Button.OnClickListener() {
public void onClick(View v) {
DecimalFormat nf = new DecimalFormat("0.00");
try {
/*
double height = (Double.parseDouble(field_feet.getText().toString())*12+Double.parseDouble(field_inch.getText().toString()))*2.54/100;
*/
double height = (feet*12+inch)*2.54/100;
double weight = Double.parseDouble(field_weight.getText().toString())*0.45359;
double BMI = weight / (height * height);
//Present result
view_result.setText(getText(R.string.bmi_result) + nf.format(BMI));
//Give health advice
if(BMI > 27) {
view_suggest.setText(R.string.advice_fat);
} else if(BMI > 25) {
view_suggest.setText(R.string.advice_heavy);
} else if(BMI < 20) {
view_suggest.setText(R.string.advice_light);
} else {
view_suggest.setText(R.string.advice_average);
}
} catch(Exception obj) {
Toast.makeText(Abmi.this, getString(R.string.input_error), Toast.LENGTH_SHORT).show();
}
}
};
protected static final int MENU_ABOUT = Menu.FIRST;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
Log.d(TAG, "open Menu");
menu.add(0, MENU_ABOUT, 0, R.string.about_label);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
Log.d(TAG, "select Menu Item");
switch(item.getItemId()) {
case MENU_ABOUT:
openOptionsDialog();
break;
}
return super.onOptionsItemSelected(item);
}
private void openOptionsDialog() {
Log.d(TAG, "open Dialog");
new AlertDialog.Builder(this)
.setTitle(R.string.about_title)
.setMessage(R.string.about_msg)
.setPositiveButton(R.string.ok_label,
new DialogInterface.OnClickListener(){
public void onClick(
Dialog
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Google Android开发入门指南(第2版)随书光盘(实例源码) (673个子文件)
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 2KB
all-wcprops 1KB
all-wcprops 947B
all-wcprops 547B
all-wcprops 534B
all-wcprops 533B
all-wcprops 513B
all-wcprops 508B
all-wcprops 483B
all-wcprops 478B
all-wcprops 452B
all-wcprops 438B
all-wcprops 414B
all-wcprops 408B
all-wcprops 400B
all-wcprops 378B
all-wcprops 372B
all-wcprops 313B
all-wcprops 289B
all-wcprops 264B
all-wcprops 254B
all-wcprops 242B
all-wcprops 236B
all-wcprops 232B
all-wcprops 218B
all-wcprops 212B
all-wcprops 212B
all-wcprops 210B
all-wcprops 208B
all-wcprops 206B
all-wcprops 206B
all-wcprops 204B
all-wcprops 202B
all-wcprops 202B
all-wcprops 200B
all-wcprops 198B
all-wcprops 192B
all-wcprops 190B
all-wcprops 186B
all-wcprops 104B
all-wcprops 104B
all-wcprops 104B
all-wcprops 100B
all-wcprops 100B
all-wcprops 100B
all-wcprops 99B
all-wcprops 99B
all-wcprops 99B
all-wcprops 96B
all-wcprops 96B
all-wcprops 96B
all-wcprops 94B
all-wcprops 94B
all-wcprops 94B
all-wcprops 93B
all-wcprops 93B
all-wcprops 93B
all-wcprops 92B
all-wcprops 92B
all-wcprops 92B
all-wcprops 91B
all-wcprops 91B
all-wcprops 91B
all-wcprops 91B
all-wcprops 91B
all-wcprops 91B
all-wcprops 90B
all-wcprops 87B
all-wcprops 87B
all-wcprops 87B
all-wcprops 87B
all-wcprops 87B
all-wcprops 87B
all-wcprops 86B
all-wcprops 86B
all-wcprops 86B
all-wcprops 86B
all-wcprops 86B
all-wcprops 86B
all-wcprops 86B
all-wcprops 85B
all-wcprops 85B
all-wcprops 85B
all-wcprops 85B
all-wcprops 83B
all-wcprops 83B
all-wcprops 83B
all-wcprops 82B
all-wcprops 82B
all-wcprops 82B
all-wcprops 81B
all-wcprops 81B
all-wcprops 81B
all-wcprops 80B
all-wcprops 80B
all-wcprops 80B
all-wcprops 80B
all-wcprops 79B
共 673 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
xyli0928
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页