1 / 17

第三章

第三章. 手機與 PDA 行動裝置平台簡介. 實驗介紹. 實驗目的 撰寫程式 “ EX03_10” 利用簡單 BMI 標準體重計算器,示範如何將資料傳遞到下一個 Activity 。. 實驗步驟. 首先打開 Ec lipse 3.5 File → New→ Android Project. EX03_10. 撰寫“ EX03_10” 程式 在模擬器中執行 情境: 從介面 1 輸入性別、身高, 把資料傳遞到介面 2 會輸出 您的標準體重. 介面 main.xml(1).

keren
Download Presentation

第三章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 手機與PDA行動裝置平台簡介

  2. 實驗介紹 • 實驗目的 • 撰寫程式 “EX03_10” • 利用簡單BMI標準體重計算器,示範如何將資料傳遞到下一個Activity。

  3. 實驗步驟 • 首先打開 Eclipse 3.5 • File → New→ Android Project

  4. EX03_10 • 撰寫“EX03_10”程式 • 在模擬器中執行 • 情境: • 從介面1輸入性別、身高, 把資料傳遞到介面2會輸出 您的標準體重

  5. 介面 main.xml(1) • <?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"> • <TextView//加入文字顯示物件 • android:id="@+id/title“ //設定此TextView物件名稱為title • android:layout_width="243px" //設定TextView寬度 • android:layout_height="29px“ //設定TextView高度 • android:text=“@string/title“ //title物件顯示的文字,讀取string.xml的title資串內容 • android:textSize="24sp" //設定TextView文字大小 • android:layout_x="36px" //設定TextView座標x • android:layout_y="32px" /> //設定TextView座標y • <TextView//加入文字顯示物件 • android:id="@+id/text1" //設定此TextView物件名稱為text1 • android:layout_width="wrap_content" //設定TextView寬度 • android:layout_height="37px" //設定TextView高度 • android:text=“@string/text1“ //text1物件顯示的文字,讀取string.xml的text1資串內容 • android:textSize="18sp“ //設定TextView文字大小 • android:layout_x="40px“ //設定TextView座標x • android:layout_y="156px" /> //設定TextView座標y

  6. 介面main.xml(2) • <TextView//加入文字顯示物件 • android:id="@+id/text2“ //設定此TextView物件名稱為text2 • android:layout_width="wrap_content" //設定TextView寬度 • android:layout_height="29px" //設定TextView高度 • android:text=“@string/text2“ //text2物件顯示的文字,讀取string.xml的text2字串內容 • android:textSize="18sp" //設定TextView文字大小 • android:layout_x="40px" //設定TextView座標x • android:layout_y="102px" /> //設定TextView座標y • <TextView//加入文字顯示物件 • android:id="@+id/text3" //設定此TextView物件名稱為text3 • android:layout_width="wrap_content" //設定TextView寬度 • android:layout_height="wrap_content" //設定TextView高度 • android:text=“cm” //text2物件顯示的文字為”cm” • android:textSize="18sp" //設定TextView文字大小 • android:layout_x="231px" //設定TextView座標x • android:layout_y="157px" /> //設定TextView座標y • <Button//放入按鈕物件 • android:id="@+id/button1" //設定此按鈕物件名稱為button1 • android:layout_width="70px" //設定按鈕的寬度 • android:layout_height="48px" //設定按鈕的高度 • android:text=“計算” //設定按鈕顯示的文字為” 計算” • android:layout_x="130px" //設定按鈕的座標x • android:layout_y="232px" //設定按鈕的座標y • />

  7. 介面main.xml(3) • <RadioGroup//RadioButton的群組物件(當被此物件包覆起來的RadioButton只能單選) • android:id=“@+id/sex“ //RadioGroup物件名稱為sex • android:layout_width=“300px“ // RadioGroup的寬度 • android:layout_height=“100px“ //RadioGroup的高度 • android:layout_x=“97px“ //RadioGroup的座標x • android:layout_y=“98px“ //RadioGroup的座標y • android:orientation=“horizontal“ //RadioGroup的方向(horizontal為水平) • android:checkedButton=“@+id/sex1“ //默認RadioButton的選擇為sex1 • > • <RadioButton//RadioButton(單選鈕)的物件 • android:id="@+id/sex1“ //RadioButton物件名稱為sex1 • android:layout_width="wrap_content" //RadioButton的寬度 • android:layout_height="wrap_content" //RadioButton的高度 • android:text="男的“ //設定sex1顯示的文字為”男的” • /> • <RadioButton //RadioButton(單選鈕)的物件 • android:id="@+id/sex2" //RadioButton物件名稱為sex2 • android:layout_width="wrap_content" //RadioButton的寬度 • android:layout_height="wrap_content" //RadioButton的高度 • android:text="女的" //設定sex1顯示的文字為”女的” • /> • </RadioGroup> • <EditText//EditText(輸入框)的物件 • android:id=“@+id/height“ //EditText物件名稱為height • android:layout_width=“130px“ //EditText的寬度 • android:layout_height=“wrap_content“//EditText的高度 • android:textSize=“18sp“ //EditText的字形大小 • android:layout_x=“96px“ //EditText的座標x • android:layout_y=“142px“ //EditText的座標y • android:numeric=“decimal“ //默認輸入狀態為數字 • /> • </AbsoluteLayout>

  8. 介面main.xml(4) • TextView • TextView物件title • TextView物件text1 • TextView物件text2 • TextView物件text3 • Button • Button物件button1 • RadioGroup • RadioGroup物件sex • RadioButton • RadioButton物件sex1 • RadioButton物件sex2 • EditText • EditText物件名稱為height

  9. 介面 mylayout.xml(1) • <?xml version="1.0" encoding="utf-8"?> • <AbsoluteLayout //絕對位置版面配置(座標佈局) • android:layout_width="fill_parent" //寬度填滿 • android:layout_height=“fill_parent” //高度填滿 • xmlns:android="http://schemas.android.com/apk/res/android" • > • <TextView //加入文字顯示物件 • android:id="@+id/text1“ //設定此TextView物件名稱為text1 • android:layout_width="wrap_content" //設定TextView寬度 • android:layout_height="wrap_content" //設定TextView高度 • android:textSize=“20sp” //設定TextView字型大小 • android:layout_x=“50px” //設定TextView座標x • android:layout_y=“72px” //設定TextView座標y • /> • </AbsoluteLayout>

  10. 介面 mylayout.xml(2) • TextView • TextView物件text1

  11. Android程式碼 EX03_10.java • Import略 • publicclass EX03_10 extends Activity • { • /** Called when the activity is first created. */ • @Override • publicvoid onCreate(Bundle savedInstanceState) • { • super.onCreate(savedInstanceState); • /* 載入main.xml Layout */ • setContentView(R.layout.main); • /* 以findViewById()取得Button物件,並加入onClickListener */ • Button b1 = (Button) findViewById(R.id.button1); • b1.setOnClickListener(new Button.OnClickListener() • { • publicvoid onClick(View v) • { • /*取得輸入的身高*/ • EditText et = (EditText) findViewById(R.id.height); • double height=Double.parseDouble(et.getText().toString()); //取得身高輸入框的值 • /*取得選擇的性別*/ • String sex=""; • RadioButton rb1 = (RadioButton) findViewById(R.id.sex1); //男的RadioButton • if(rb1.isChecked()) //如果選擇的是男的RadioButton • { • sex=“M”; //sex字串內容為”M” • }else{ //否則 • sex="F"; //sex字串內容為”F” • } • /*new一個Intent物件,並指定class*/ • Intent intent = new Intent(); • intent.setClass(EX03_10.this,EX03_10_1.class); • /*new一個Bundle物件,並將要傳遞的資料傳入*/ • Bundle bundle = new Bundle(); • bundle.putDouble(“height”,height); //傳遞height(身高)的值 • bundle.putString(“sex”,sex); //傳遞sex的值(M或F) • /*將Bundle物件assign給Intent*/ • intent.putExtras(bundle); • /*呼叫Activity EX03_10_1*/ • startActivity(intent); • } • }); • } • }

  12. publicvoid onClick(View v) • { • /*取得輸入的身高*/ • EditText et = (EditText) findViewById(R.id.height); • double height=Double.parseDouble(et.getText().toString()); //取得身高輸入框的值 • /*取得選擇的性別*/ • String sex=""; • RadioButton rb1 = (RadioButton) findViewById(R.id.sex1); //男的RadioButton • if(rb1.isChecked()) //如果選擇的是男的RadioButton • { • sex=“M”; //sex字串內容為”M” • }else{ //否則 • sex="F"; //sex字串內容為”F” • }

  13. Intent intent = new Intent(); • intent.setClass(EX03_10.this,EX03_10_1.class); • /*new一個Bundle物件,並將要傳遞的資料傳入*/ • Bundle bundle = new Bundle(); • bundle.putDouble(“height”,height); //傳遞height(身高)的值 • bundle.putString(“sex”,sex); //傳遞sex的值(M或F) • bundle.putString(“name”,”陳瑞樂_99”); • /*將Bundle物件assign給Intent*/ • intent.putExtras(bundle); • /*呼叫Activity EX03_10_1*/ • startActivity(intent);

  14. Activity2 • /* 取得Intent中的Bundle物件 */ • Bundle bunde = this.getIntent().getExtras(); • /* 取得Bundle物件中的資料 */ • String sex = bunde.getString("sex"); • double height = bunde.getDouble("height"); • /* 判斷性別 */ • String sexText=""; • if(sex.equals("M")){ • sexText="男性"; • }else{ • sexText="女性"; • }

  15. /* 設定輸出文字 */ • TextView tv1=(TextView) findViewById(R.id.text1); • tv1.setText("你是一位"+sexText+"\n你的身高是"+height+ • "公分\n你的標準體重是"+weight+"公斤");

  16. Android程式碼 EX03_10_1.java(1) • Import略 • public class EX03_10_1 extends Activity • { • /** Called when the activity is first created. */ • @Override • public void onCreate(Bundle savedInstanceState) { • super.onCreate(savedInstanceState); • /* 載入main.xml Layout */ • setContentView(R.layout.myalyout); • /* 取得Intent中的Bundle物件 */ • Bundle bunde = this.getIntent().getExtras(); • /* 取得Bundle物件中的資料 */ • String sex = bunde.getString("sex"); • double height = bunde.getDouble("height"); • /* 判斷性別 */ • String sexText=""; • if(sex.equals("M")){ • sexText="男性"; • }else{ • sexText="女性"; • } • /* 取得標準體重 */ • String weight=this.getWeight(sex, height); • /* 設定輸出文字 */ • TextView tv1=(TextView) findViewById(R.id.text1); • tv1.setText("你是一位"+sexText+"\n你的身高是"+height+ • "公分\n你的標準體重是"+weight+"公斤"); • }

  17. Android程式碼 EX03_10_1.java(2) • /* 四捨五入的method */ • private String format(double num) • { • NumberFormat formatter = new DecimalFormat("0.00"); • String s=formatter.format(num); • return s; • } • /* 以findViewById()取得Button物件,並加入onClickListener */ • private String getWeight(String sex,double height) • { • String weight=""; • if(sex.equals("M")) • { • weight=format((height-80)*0.7); • }else • { • weight=format((height-70)*0.6); • } • return weight; • } • }

More Related