搜尋此網誌
2010年6月17日 星期四
Android開發-實際應用(一)基礎代謝率
這次程式是撰寫 計算人的基礎代謝率 其實此程式在iphone已經寫過了 這次因為在練習 所以將此程式又寫了另外一個版本在android上 而寫此程式的目的在於 將之前學過的東西再複習一次 增加熟練度
main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditText
android:id="@+id/height"
android:layout_width="122px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="130px"
android:layout_y="22px"
>
</EditText>
<TextView
android:id="@+id/widget28"
android:layout_width="wrap_content"
android:layout_height="22px"
android:text="Height(cm)"
android:layout_x="40px"
android:layout_y="32px"
>
</TextView>
<TextView
android:id="@+id/widget29"
android:layout_width="wrap_content"
android:layout_height="23px"
android:text="Weight(kg)"
android:layout_x="40px"
android:layout_y="102px"
>
</TextView>
<EditText
android:id="@+id/weight"
android:layout_width="122px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="130px"
android:layout_y="92px"
>
</EditText>
<TextView
android:id="@+id/widget31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Age"
android:layout_x="60px"
android:layout_y="162px"
>
</TextView>
<EditText
android:id="@+id/age"
android:layout_width="123px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="130px"
android:layout_y="152px"
>
</EditText>
<RadioGroup
android:id="@+id/myradio"
android:layout_width="288px"
android:layout_height="76px"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_x="10px"
android:layout_y="202px"
>
<RadioButton
android:id="@+id/manradio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Man"
>
</RadioButton>
<RadioButton
android:id="@+id/womanradio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Woman"
>
</RadioButton>
</RadioGroup>
<Spinner
android:id="@+id/spinner"
android:layout_width="194px"
android:layout_height="wrap_content"
android:layout_x="120px"
android:layout_y="312px"
>
</Spinner>
<TextView
android:id="@+id/display"
android:layout_width="240px"
android:layout_height="42px"
android:background="#ffff6600"
android:layout_x="40px"
android:layout_y="382px"
>
</TextView>
<Button
android:id="@+id/calculate"
android:layout_width="77px"
android:layout_height="wrap_content"
android:text="calculate"
android:layout_x="30px"
android:layout_y="312px"
android:onClick="Calculate"
>
</Button>
</AbsoluteLayout>
Health.java
package com.android.demo.health;
import java.text.DecimalFormat;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class Health extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findview();
spinnercontent();
setlistener();
}
private EditText Height,Weight,Age;
private TextView display;
private Spinner spinner;
private float a;
private RadioGroup Myradiogroup;
boolean man,woman;
private void findview()
{
Myradiogroup=(RadioGroup)findViewById(R.id.myradio);
Height=(EditText)findViewById(R.id.height);
Weight=(EditText)findViewById(R.id.weight);
Age=(EditText)findViewById(R.id.age);
spinner=(Spinner)findViewById(R.id.spinner);
display=(TextView)findViewById(R.id.display);
}
private RadioGroup.OnCheckedChangeListener changeradio=new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId)
{
//判斷user是圈選男性或女性
switch(checkedId)
{
case R.id.manradio:
man=true;
break;
case R.id.womanradio:
woman=true;
break;
default:
Toast.makeText(Health.this,"You don't select something else",Toast.LENGTH_LONG).show();
}
}
};
private void setlistener()
{
spinner.setOnItemSelectedListener(spinnerListener);
Myradiogroup.setOnCheckedChangeListener(changeradio);
}
//設定下拉式選單的內容
private void spinnercontent()
{
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,new String[]{"很少運動或完全沒運動","每週運動1到3次","每週運動3到5次","每週運動6到7次","每天非常重度的運動"});
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
//監聽user選了下拉式選單的選項
private Spinner.OnItemSelectedListener spinnerListener= new Spinner.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?>adapterView, View v, int position, long id)
{
String string=adapterView.getSelectedItem().toString();
if(string.equals("很少運動或完全沒運動"))
{
a=(float) 1.2;
}
else if (string.equals("每週運動1到3次"))
{
a=(float)1.375;
}
else if (string.equals("每週運動3到5次"))
{
a=(float)1.55;
}
else if (string.equals("每週運動6到7次"))
{
a=(float)1.725;
}
else
{
a=(float)1.9;
}
}
public void onNothingSelected(AdapterView<?>adapterView)
{
Toast.makeText(Health.this, "You don't select something else", Toast.LENGTH_LONG).show();
}
};
//當user按下calculate按鈕 就執行內部的程式
public void Calculate(View v)
{
//取得user所填入的數字
float height = Float.parseFloat(Height.getText().toString());
float weight = Float.parseFloat(Weight.getText().toString());
int age=Integer.parseInt(Age.getText().toString());
//設定計算數字的格式
DecimalFormat nf = new DecimalFormat("0.00");
//如果user是男性 就以此公式計算
if(man)
{
double manresulta=(double)66+(13.8*weight)+(5.0*height)-(6.8*age);
double manresultb=a*manresulta;
//先將計算後的數字對應我設定的格式 接著將double轉成string 最後顯示出來
display.setText(String.valueOf(nf.format(manresultb)));
}
//如果user是女性 就以此公式計算
if(woman)
{
double womanresulta=(double)655+(9.6*weight)+(1.8*height)-(4.7*age);
double womanresultb=a*womanresulta;
display.setText(String.valueOf(nf.format(womanresultb)));
}
}
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言