搜尋此網誌

2010年6月21日 星期一

Android開發-UIImageView


在android上顯示圖片 有兩種方法 一種是直接在xml裡面用imageview 或者 用code的方式來顯示 這和iphone是相似的(xib和code)

首先先把要顯示的圖檔丟到專案中的res/drawable資料夾

接著開始寫程式
方法一:在xml加入imageview
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"
>
//加入ImageView
<ImageView
android:id="@+id/widget27"
android:layout_width="37px"
android:layout_height="wrap_content"
//one為圖檔的名字
android:src="@drawable/one"
android:layout_x="140px"
android:layout_y="162px"
>
</ImageView>
</AbsoluteLayout>

方法二:用code的方式
ImageView.java

package com.demo.android.imageview;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.AbsoluteLayout;
import android.widget.Gallery.LayoutParams;

public class Imageview extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AbsoluteLayout mAbsoluteLayout = new AbsoluteLayout(this);
//產生ImageView object
ImageView imageView = new ImageView(this);
//讀取圖檔
imageView.setImageResource(R.drawable.one);
//設定圖片大小和位置
//AbsoluteLayout.LayoutParams (int width, int height, int x, int y)
//
LayoutParams.WRAP_CONTENT 用圖片的原始大小 x,y為圖片的顯示位置
myview.setLayoutParams(new AbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,130,192));
mAbsoluteLayout.addView(myview);
setContentView(mAbsoluteLayout);
}
}

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)));
}

}
}

2010年6月14日 星期一

Android開發-RadioButton


此次程式主要是練習RadioButton的使用方法 並且同樣的使用Toast來顯示 來方便驗證是否正確的監聽到使用者的圈選
此次用RadioGroup將同性質的按鈕歸類為同一類 來達到兩個按鈕互斥(也就是二選一)

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"
>
<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="320px"
android:layout_height="430px"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_x="0px"
android:layout_y="2px"
>
<RadioButton
android:id="@+id/maleradio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Man"
>
</RadioButton>
<RadioButton
android:id="@+id/femaleradio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Woman"
>
</RadioButton>
</RadioGroup>
</AbsoluteLayout>

Radiobutton.java

package com.android.demo.radiobutton;

import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.Toast;

public class Radiobutton extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findview();
setlistener();

}
private RadioGroup myradiogroup;
private void findview()
{
myradiogroup=(RadioGroup)findViewById(R.id.radiogroup);
}
private void setlistener()
{
myradiogroup.setOnCheckedChangeListener(changeradio);
}
//監聽radiogroup裡面的radiobutton是否有被使用者圈選
private RadioGroup.OnCheckedChangeListener changeradio=new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId)
{
//透過id來辨認不同的radiobutton
switch(checkedId)
{
case R.id.maleradio:
Toast.makeText(Radiobutton.this,"You are a Man",Toast.LENGTH_LONG).show();
break;
case R.id.femaleradio:
Toast.makeText(Radiobutton.this,"You are a Woman",Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(Radiobutton.this,"Someting error",Toast.LENGTH_LONG).show();
}
}

};
}

2010年6月13日 星期日

Android開發-Checkbox


這次的程式主要是練習Checkbox的使用方法 並且同樣和上篇一樣 搭配Toast來顯示

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"
>
<CheckBox
android:id="@+id/male"
android:layout_width="88px"
android:layout_height="wrap_content"
android:text="Man"
android:layout_x="50px"
android:layout_y="252px"
>
</CheckBox>
<CheckBox
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Woman"
android:layout_x="190px"
android:layout_y="252px"
>
</CheckBox>
</AbsoluteLayout>

Checkbox.java

package com.android.demo.checkbox;

import android.app.Activity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;

public class Checkbox extends Activity {
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findview();
checkboxlistener();
}
private CheckBox malecheckbox;
private CheckBox femalecheckbox;
private void findview()
{
malecheckbox=(CheckBox)findViewById(R.id.male);
femalecheckbox=(CheckBox)findViewById(R.id.female);
}
//設定checkbox的listener
private void checkboxlistener()
{
malecheckbox.setOnCheckedChangeListener(listener);
femalecheckbox.setOnCheckedChangeListener(listener);
}
//監聽user 是否有選取
private CheckBox.OnCheckedChangeListener listener=new CheckBox.OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked)
{
//如果user按下Man
if(malecheckbox.isChecked()==true)
{
//則顯示字串You are Man
Toast.makeText(Checkbox.this,"You are a Man",Toast.LENGTH_LONG).show();
}
//如果user按下Woman
if(femalecheckbox.isChecked()==true)
{
//則顯示字串You are Woman
Toast.makeText(Checkbox.this,"You are a Woman",Toast.LENGTH_LONG).show();
}
}
};
}

Android開發-Spinner應用


此次的程式 主要是練習下拉式選單 並且搭配Toast來顯示
Toast 介面元件的作用是彈出一個訊息框,快速在螢幕上顯示一小段訊息
這次的程式會學習到
1.Spinner的用法
2.Toast

main.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget29"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="120px"
android:layout_y="112px"
>
</Spinner>
</AbsoluteLayout>

Spinnertest.java

package com.demo.android.spinnertest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;


public class Spinnertest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findview();
//建立一個ArrayAdapter物件,並且存放下拉式選單的內容
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,new String[]{"Screen","Keyboard","Mouse"});
//設定Spinner的樣式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//設定adapter 將剛剛的下拉式選單內容 給這個widget
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(spinnerListener);

}

private void findview() {
spinner = (Spinner) findViewById(R.id.spinner);
}

private Spinner spinner;
//監聽下拉式選單 是否被選擇
private Spinner.OnItemSelectedListener spinnerListener= new Spinner.OnItemSelectedListener()
{
//如果被選擇
public void onItemSelected(AdapterView<?>adapterView, View v, int position, long id)
{
//利用Toast來顯示 Toast.LENGTH_LONG則表示 顯示時間長
//Spinnertest.this 則代表指向Spinnertest這個實例 若是寫成this則是指向OnItemSelectedListener這個實例
//最後用show()將Toast 元件顯示在螢幕上
Toast.makeText(Spinnertest.this, "You select"+adapterView.getSelectedItem().toString(), Toast.LENGTH_LONG).show();
}

//若是沒有選擇任何項目
public void onNothingSelected(AdapterView<?>adapterView)
{
Toast.makeText(Spinnertest.this, "You don't select anything", Toast.LENGTH_LONG).show();
}
};


}

2010年6月11日 星期五

Android開發-Debug_Logcat tool

有時編譯完程式之後 會發現明明沒錯誤 怎麼丟到模擬器 卻又有問題產生 此時可以使用Logcat來幫助你 解決bug 有找到一篇寫得不錯 也有圖文教學的網頁 可以參考

Logcat使用教學

Android開發-Handle UI Events_多個button

在Android裡面 是利用Event listener來取得使用者是否正在操作介面(例如按下按鈕、touch等)來給予適當的回應 此次程式 延續上次的bmi程式 新增加了reset按鈕 可以將所有欄位清空 並且將各功能分開寫 而之前程式是一個button對應一個listener 那麼多個button 就可能需要很多個listener? 此部份我有找到一個可行的方法可以簡化此情形 查到的資料是寫android 1.6之後 就有支援這種寫法

此次的程式會學到:
1.多個button如何對應同個listener(當然也可以對應不同listener)
2.解決可能需要很多listener的情形 讓程式能夠簡化

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"
>
<Button
android:id="@+id/reset"
android:layout_width="109px"
android:layout_height="wrap_content"
android:text="Reset"
android:layout_x="100px"
android:layout_y="362px"
//將按鈕指定對應的listener 按下此按鈕將會執行ClickHandler內的東西
android:onClick="ClickHandler"
>
</Button>
<Button
android:id="@+id/submit"
android:layout_width="108px"
android:layout_height="wrap_content"
android:text="Cal Bmi"
android:layout_x="100px"
android:layout_y="292px"
//將按鈕指定對應的listener 按下此按鈕將會執行ClickHandler內的東西
android:onClick="ClickHandler"
>
</Button>
<EditText
android:id="@+id/height"
android:layout_width="165px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="100px"
android:layout_y="22px"
>
</EditText>
<EditText
android:id="@+id/weight"
android:layout_width="167px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_x="100px"
android:layout_y="82px"
>
</EditText>
<TextView
android:id="@+id/result"
android:layout_width="166px"
android:layout_height="57px"
android:background="#ffff9933"
android:textColor="#ff666666"
android:layout_x="70px"
android:layout_y="152px"
>
</TextView>
<TextView
android:id="@+id/suggest"
android:layout_width="168px"
android:layout_height="50px"
android:background="#ffff9933"
android:layout_x="70px"
android:layout_y="222px"
>
</TextView>
<TextView
android:id="@+id/widget33"
android:layout_width="wrap_content"
android:layout_height="32px"
android:text="Height(cm)"
android:layout_x="20px"
android:layout_y="32px"
>
</TextView>
<TextView
android:id="@+id/widget34"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Weight(kg)"
android:layout_x="20px"
android:layout_y="102px"
>
</TextView>
</AbsoluteLayout>

Bmi.java

package com.demo.android.bmi;

import android.app.Activity;
import android.os.Bundle;
import java.text.DecimalFormat;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;



public class Bmi extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//取得view上的元件
findViews();
}
private EditText fieldheight;
private EditText fieldweight;
private TextView result;
private TextView fieldsuggest;

public void ClickHandler(View v)
{
//利用switch case 來區別不同的按鈕
switch(v.getId())
{
//若是按下submit button 就執行calculate
case R.id.submit:

calculate();
break;
//若是按下reset button 就執行reset
case R.id.reset:
reset();
break;

}
}
private void findViews()
{
fieldheight = (EditText)findViewById(R.id.height);
fieldweight = (EditText)findViewById(R.id.weight);
result = (TextView)findViewById(R.id.result);
fieldsuggest = (TextView)findViewById(R.id.suggest);
}
//清除所有欄位
private void reset()
{
fieldheight.setText("");
result.setText("");
fieldweight.setText("");
fieldsuggest.setText("");

}
private void calculate()
{
DecimalFormat nf = new DecimalFormat("0.00");
double height = Double.parseDouble(fieldheight.getText().toString())/100;
double weight = Double.parseDouble(fieldweight.getText().toString());
double BMI = weight / (height * height);
result.setText("Your BMI is "+nf.format(BMI));
if(BMI>25){
fieldsuggest.setText("太胖了 該減肥了!");
}else if(18.51 fieldsuggest.setText("人人稱羨的完美身材!");
}else{
fieldsuggest.setText("太瘦了多吃點!");
}
}
}

2010年6月2日 星期三

Android開發-BMI設計

首先要一個小觀念 Android將其應用程式的介面稱為View 而負責控制各種動作行為的程式 則稱為Activity
這次的程式 我是參考gasolin大的教學 逐一瞭解之後
實際跑過一次 並且將我瞭解的部分 再寫一次 用來驗證是否熟悉
其實看起來有點像iphone中的MVC架構 但實際此程式並非依照此架構寫成的
gasolin大之後也有改成MVC架構的寫法 明顯的可以看出較為簡潔易懂 剛好也能對應我在iphone中所學到的
main.xml的部分是用來寫介面的部分 但android並不是透過xml儲存介面到手機上 而是自動將 XML 描述檔轉換成資源檔案 而此檔案為R.java
此次的介面包括button,textview,edittext


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
//利用這個識別符號來對應這個元件 之後我們在程式中可以透過R.id.hegiht來調用他
android:id="@+id/height"
android:layout_width="157px"
android:layout_height="wrap_content"
android:textSize="18sp"
//限制此元件內容只能輸入integer
android:numeric="integer"
android:layout_x="100px"
android:layout_y="22px"
>
</EditText>
<EditText
android:id="@+id/weight"
android:layout_width="158px"
android:layout_height="wrap_content"
android:textSize="18sp"
android:numeric="integer"
android:layout_x="100px"
android:layout_y="102px"
>
</EditText>
<TextView
android:id="@+id/widget29"
android:layout_width="wrap_content"
android:layout_height="31px"
android:text="Height(cm)"
android:textSize="18sp"
android:layout_x="10px"
android:layout_y="32px"
>
</TextView>
<TextView
android:id="@+id/widget30"
android:layout_width="wrap_content"
android:layout_height="31px"
android:text="Weight(kg)"
android:textSize="18sp"
android:layout_x="10px"
android:layout_y="112px"
>
</TextView>
<Button
android:id="@+id/submit"
android:layout_width="121px"
android:layout_height="wrap_content"
android:text="Calculate BMI"
android:textSize="18sp"
android:layout_x="100px"
android:layout_y="322px"
>
</Button>
<TextView
android:id="@+id/suggest"
android:layout_width="173px"
android:layout_height="38px"
android:textColor="#ff000000"
android:background="#ffff9900"
android:textSize="16sp"
android:layout_x="70px"
android:layout_y="242px"
>
</TextView>
<TextView
android:id="@+id/result"
android:layout_width="172px"
android:layout_height="42px"
android:textColor="#ff000000"
android:background="#ffff9933"
android:textSize="16sp"
android:layout_x="70px"
android:layout_y="182px"
>
</TextView>
</AbsoluteLayout>

Bmi.java

package com.demo.android.bmi;

import android.app.Activity;
import android.os.Bundle;
import java.text.DecimalFormat;
import android.view.View;
//用來監聽user是否按下button
import android.view.View.OnClickListener;
//因為此程式用到button,edittext,textview 所以需要import以下
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;



public class Bmi extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//宣告一個button 對應至在xml裡面的submit
Button button = (Button)findViewById(R.id.submit);
//監聽user是否按下按鈕 若按下 則執行calcBMI function
button.setOnClickListener(calcBMI);

}
private OnClickListener calcBMI = new OnClickListener()
{
public void onClick(View v)
{
DecimalFormat nf = new DecimalFormat("0.00");
//從
height對應的元件中取得user所輸入的數值
EditText fieldheight = (EditText)findViewById(R.id.height);
EditText fieldweight = (EditText)findViewById(R.id.weight);
//將字串轉成double
double height = Double.parseDouble(fieldheight.getText().toString())/100;
double weight = Double.parseDouble(fieldweight.getText().toString());
double BMI = weight / (height * height);
//xml中的result所對應的元件
TextView result = (TextView)findViewById(R.id.result);
//在result所對應的元件中 顯示字串 並且是按照之前所設定的格式
result.setText("Your BMI is "+nf.format(BMI));

TextView fieldsuggest = (TextView)findViewById(R.id.suggest);
if(BMI>25){
fieldsuggest.setText("太胖了 該減肥了!");
}
else if(18.51<BMI&&BMI<24)
{
fieldsuggest.setText("人人稱羨的完美身材!");
}
else{
fieldsuggest.setText("太瘦了多吃點!");
}
}
};

}