以下為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);
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);// 取得 顯示診斷 物件
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("你心臟血管的體表面積,換算的值過低,請洽詢醫師做治療。");
}
}
});
}
}
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中,便可對所使用的物件做有效的應用。
下圖為使用模擬器所使用的結果。
沒有留言:
張貼留言