2018年9月29日 星期六

Android Studio撰寫程式第三課

  目前所使用的版本為Android studio 3.1.4,教初學者撰寫一隻體表面積(BSA)的應用程式。
    以下為BSA的公式-->BSA=(身高(公分)+體重(公斤)-60)/100
  
  範例:
     假設一個人的身高為180公分,體重70公斤,套上以上的公式計算一下
        
        (180+70-60)=190   190/100=1.9 則計算出來的BSA的值為1.9
  
        那成人正常的體表面積為1.6~1,9,所以計算出來算正常

  在Android Studio 3.1.4的版本中有幾個地方需特別的注意:
  
  JAVA的App中原始的程式碼如下:

  


上圖所顯示的為用來將所需的函式庫給放入到JAVA中的MainActivity.java中。


下面的程式碼為參考網路上的相關資料撰寫而成的,而這部份只局限於JAVA中的MainActivity.java中。


package aixstudio.bsaexample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View ;
import android.widget.TextView ;
import android.widget.EditText ;
import android.widget.Button ;

import java.text.NumberFormat ;

public class MainActivity extends AppCompatActivity {
    TextView
dia;           //宣告全域變數
   
EditText height ;       //宣告全域變數
   
EditText weight;        //宣告全域變數
   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        getSupportActionBar().setTitle(
"BSA-計算器");       //加入Title的名稱
       
setContentView(R.layout.activity_main);

       
height =(EditText)findViewById (R.id .Et1) ;        //取得身高的物件
       
weight =(EditText )findViewById(R.id .Et2 );        //取得體重的物件
       
Button submit = (Button)findViewById(R.id.Btn1 );   // 取得按鈕物件

        //
按下按鈕 觸發事件
       
submit .setOnClickListener(new Button.OnClickListener(){

           
@Override
           
public void onClick(View Arg0) {
               
if ( !("".equals(height .getText().toString())
                        ||
"".equals(weight .getText().toString())) ) {
                   
float fh = Float.parseFloat(height.getEditableText().toString());// 取得 身高輸入值
                   
float fw = Float.parseFloat(weight.getEditableText().toString());// 取得 體重輸入值
                   
float fresult;                             // BSA值 計算結果
                   
TextView result = (TextView) findViewById(R.id.Tv3);     
                   // 取得 顯示結果 物件
                   
fh = fh / 100;               // 計算BSA身高(公分轉公尺)

                   
NumberFormat nf = NumberFormat.getInstance(); // 數字格式
                   
nf.setMaximumFractionDigits(2);             // 限制小數第二位

                   
fresult = (fw + fh) / 100// 計算BSA(體重(公斤)/身高(公尺))

                    
result.setText(
                            nf.format((fw + fh) /
100));      // 顯示BSA計算結果

                   
dia = (TextView) findViewById(R.id.Tv4);// 取得 顯示診斷 物件

                    
              // 診斷結果 顯示

                   
if (fresult > 1.9)

                       
dia.setText("你心臟血管的體表面積,換算的值過高,請洽詢醫師做治療。");

                   
else if (1.6 <= fresult && fresult <= 1.9)

                       
dia.setText("你心臟血管的體表面積屬正常範圍,可以繼續維持下去。");

                   
else if (fresult < 1.6)
                        
dia.setText("你心臟血管的體表面積,換算的值過低,請洽詢醫師做治療。");
                }
            }
        });
    }
}

  Xml的App中的Layout圖如下:
   選擇Layout的物件請統一放置在Component Tree中,便可對所使用的物件做有效的應用。



  下圖為使用模擬器所使用的結果。


              





沒有留言:

張貼留言