พอดีทำโปรเจค BMI ผมทำทุกอย่างเสร็จแล้ว แต่ติดตรงที่อาจารย์อยากให้เพิ่มการกำหนดค่าการคำนวนตอนโชว์มาเป็นข้อความอะครับ
เช่น คำนวนได้ค่า 18.5 ให้โชว์คำว่า Underweight
18.5 – 24.9 ให้โชว์คำว่า Normal
25 – 29.9 ให้โชว์คำว่า Overweight
ตัวโค๊ตที่ผมทำอยู่ครับ
ซึ้งถ้ารันมา จะสามารดูการคำนวนได้ และโชว์ค่าต่างๆต่ามDialogอะครับ แต่ไม่สามารถรันมาเป็นคำ เช่น คำนวนได้ 19 โชว์คำว่า Normal อะครับ ติดอยู่ตรงนี้ ใครรู้ช่วยแนะนำทีนะครับ
package BMI2.com;
import java.text.DecimalFormat;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.widget.EditText;
public class BMI2Activity extends Activity {
private DecimalFormat df;
private Button btnCal;
private EditText edtWeight;
private EditText edtHight;
//private double moneyValue = 0;
//private String moneyLabel = “”;
private double resultValue = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
df=new DecimalFormat(“##.##”);
edtWeight = (EditText)findViewById(R.id.edtWeight);
edtHight = (EditText)findViewById(R.id.edtHight);
//edtWeight.setEnabled(false);
btnCal = (Button)findViewById(R.id.btnCalculate);
btnCal.setOnClickListener(
new OnClickListener(){
public void onClick(View arg0){
// TODO Auto-generated method stub
doCalculate();
}});
}
public void doCalculate(){
if(edtWeight.getText().toString().equals(“”)){
Toast.makeText(BMI2Activity.this,
“Not enter for number1!!!”, Toast.LENGTH_SHORT).show();
}else if(edtHight.getText().toString().equals(“”)){
Toast.makeText(BMI2Activity.this,
“Not enter for number2!!!”, Toast.LENGTH_SHORT).show();
}else{
double num1 = Double.parseDouble(edtWeight.getText().toString());
double num2 = Double.parseDouble(edtHight.getText().toString());
//moneyValue = (num2/10);
resultValue = (num2 / ((num1/100)*(num1/100)));
AlertDialog.Builder calBuilder = new AlertDialog.Builder(BMI2Activity.this);
calBuilder.setMessage(“tttttInformation”
+”ntttYour BMI ist”
+ df.format(resultValue)
+”n” +
“nWeight Status BMI” +
“nUnderweight Below 18.5” +
“nNormal t18.5 – 24.9” +
“nOverweight t25 – 29.9” +
“nObese tt30 and Above” +
“nPark“);
calBuilder.setCancelable(false);
calBuilder.setPositiveButton(“OK”, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
}
);
//
calBuilder.setNegativeButton(“save”, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}
);
calBuilder.show();
}
}}
import java.text.DecimalFormat;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class BMI2Activity extends Activity {
private DecimalFormat df;
private Button btnCal;
private EditText edtWeight;
private EditText edtHight;
String a;
// private double moneyValue = 0;
// private String moneyLabel = “”;
private double resultValue = 0;
String[] diShow = { “Underweight”, “Normal”, “Overweight”,”Obese” };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
df = new DecimalFormat(“##.##”);
edtWeight = (EditText) findViewById(R.id.edtWeight);
edtHight = (EditText) findViewById(R.id.edtHight);
// edtWeight.setEnabled(false);
btnCal = (Button) findViewById(R.id.btnCalculate);
btnCal.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
doCalculate();
}
});
}
public void doCalculate() {
if (edtWeight.getText().toString().equals(“”)) {
Toast.makeText(BMI2Activity.this, “Not enter for number1!!!”,
Toast.LENGTH_SHORT).show();
} else if (edtHight.getText().toString().equals(“”)) {
Toast.makeText(BMI2Activity.this, “Not enter for number2!!!”,
Toast.LENGTH_SHORT).show();
} else {
double num1 = Double.parseDouble(edtWeight.getText().toString());
double num2 = Double.parseDouble(edtHight.getText().toString());
// moneyValue = (num2/10);
resultValue = (num2 / ((num1 / 100) * (num1 / 100)));
AlertDialog.Builder calBuilder = new AlertDialog.Builder(BMI2Activity.this);
calBuilder.setMessage(“\t\t\t\t\tInformation”
+ “\n\t\t\tYour BMI is\t” + df.format(resultValue) + “\n”
+ “\nWeight Status BMI” + ” “+diShow[(int) show(resultValue)] + “\nPark”);
calBuilder.setCancelable(false);
calBuilder.setPositiveButton(“OK”,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
//
calBuilder.setNegativeButton(“save”,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
calBuilder.show();
}
}
public double show(double resultValue2){
double q = 0;
if(resultValue2 18.5 && resultValue2 < 24.9) q=1; else if(resultValue2 > 25 && resultValue2 < 29.9) q=2; else if(resultValue2 >= 30)
q=3;
///Log.v(“ttt”, “q = “+(int) q + ” Va = “+resultValue2);
return (int) q;
}
}
ค่า logic ตามเงื่อนไขนี้จะเกิด error ขึ้น
เมื่อค่าของ resultVaule2 = 24.9 >= 25 และ 29.9 < 30.0 ระวังการใช้ operator ให้ถูกต้องด้วยครับ เพราะมัีนไม่มีการกำหนด default มารองรับเหมือนการใช้คำสั่ง switch 🙂
ถ้าไม่ถูก อธิบายความต้องการใหม่เน้ออออ พอดีผมรีบๆ