Android 简单应用-身高体重指数(BMI)计算一

BMI值得算法是“体重除以身高的平方”。

程序的主体:

package com.example;
import java.text.DecimalFormat;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class EXAMPLEActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    Button button=(Button)findViewById(R.id.submit);
     button.setOnClickListener(calBMI);
    }
     private OnClickListener calBMI=new OnClickListener(){
     public void onClick(View v){
	 DecimalFormat nf=new DecimalFormat("0.00");
	 EditText fieldheight=(EditText)findViewById(R.id.height);
	 EditText fieldweight=(EditText)findViewById(R.id.weight);
	 double height=Double.parseDouble(fieldheight.getText().toString())/100;
	 double weight=Double.parseDouble(fieldweight.getText().toString());
	 double BMI=weight/(height*height);
	 TextView result=(TextView)findViewById(R.id.result);
	 result.setText("Your BMI is"+nf.format(BMI));
	 
	 TextView fieldsuggest=(TextView)findViewById(R.id.suggest);
	 if(BMI>25){
		 fieldsuggest.setText(R.string.advice_heavy);
	 }else if(BMI<20){
		 fieldsuggest.setText(R.string.advice_light);
	 }
	 else{
		 fieldsuggest.setText(R.string.advice_average);
	 }	 
     }

  };
}
strings.xml

<?xml version="1.0" encoding="utf-8"?>  //每个XML说明文档固定的开头内容
<resources>
    <string name="app_name">BMI</string>
    <string name="height">身高(cm)</string>
    <string name="weight">体重(kg)</string>
    <string name="bmi_btn">计算BMI的值</string>
    <string name="advice_heavy">你偏重</string>
    <string name="advice_light">你偏瘦</string>
    <string name="bmi_result">你的BMI的值是</string>
    <string name="advice_average">很标准</string>
</resources>
main.xml
<?xml version="1.0" encoding="utf-8"?>          //描述用户界面的
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" //线性页面布局
    android:orientation="vertical"  //页面走向       
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/height"
    />
<EditText 
    android:id="@+id/height"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"
    android:text=""
    />
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/weight"
    />
<EditText 
    android:id="@+id/weight"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:numeric="integer"
    android:text=""
    />
<Button
     android:id="@+id/submit"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="@string/bmi_btn"
     />
<TextView 
     android:id="@+id/result"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text=""
/> 
<TextView 
     android:id="@+id/suggest"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text=""
/>        
</LinearLayout>

运行了一下,截图:


填入数据,出错了,不明白,


找出原因了,是在strings.xml文件里面,不能把某些东西写在一起,在res/values目录中新建一个“advice.xml”文件,string里面负责显示的那部门。修改如下

strings.xml

<?xml version="1.0" encoding="utf-8"?>  //每个XML说明文档固定的开头内容
<resources>
    <string name="app_name">BMI</string>
    <string name="height">身高(cm)</string>
    <string name="weight">体重(kg)</string>
    <string name="bmi_btn">计算BMI的值</string>
    <string name="bmi_result">你的BMI的值是</string>
</resources>
advice.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="advice_heavy">你偏重</string>
    <string name="advice_light">你偏瘦</string>
    <string name="advice_average">很标准</string>
</resources>
这样就搞定了,私底下还有很多问题,没搞清楚,起码这是一个美好的开始。


  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤在Android应用中启动本地服务来计算BMI指数: 1. 在Android Studio中创建一个新的Android项目; 2. 创建一个名为BmiCalculatorService的Java类,该类将作为本地服务; 3. 在BmiCalculatorService类中实现一个计算BMI指数的方法,该方法将接收身高和体重数据,并返回计算出的BMI指数; 4. 在BmiCalculatorService类中重写onBind()方法,返回一个Binder对象,该对象将暴露计算BMI指数的方法; 5. 在MainActivity中启动BmiCalculatorService,并使用Binder对象绑定到该服务; 6. 在MainActivity中创建一个按钮,当用户点击该按钮时,将获取身高和体重数据,并使用Binder对象调用计算BMI指数的方法; 7. 在MainActivity中显示计算出的BMI指数。 以下是一个简单的示例代码: BmiCalculatorService.java ```java public class BmiCalculatorService extends Service { public double calculateBmi(double height, double weight) { return weight / (height * height); } @Override public IBinder onBind(Intent intent) { return new BmiCalculatorBinder(); } public class BmiCalculatorBinder extends Binder { public BmiCalculatorService getService() { return BmiCalculatorService.this; } } } ``` MainActivity.java ```java public class MainActivity extends AppCompatActivity { private EditText etHeight; private EditText etWeight; private TextView tvResult; private BmiCalculatorService bmiCalculatorService; private boolean isServiceBound = false; private ServiceConnection serviceConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { BmiCalculatorService.BmiCalculatorBinder binder = (BmiCalculatorService.BmiCalculatorBinder) iBinder; bmiCalculatorService = binder.getService(); isServiceBound = true; } @Override public void onServiceDisconnected(ComponentName componentName) { isServiceBound = false; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etHeight = findViewById(R.id.et_height); etWeight = findViewById(R.id.et_weight); tvResult = findViewById(R.id.tv_result); Button btnCalculate = findViewById(R.id.btn_calculate); btnCalculate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (isServiceBound) { double height = Double.parseDouble(etHeight.getText().toString()); double weight = Double.parseDouble(etWeight.getText().toString()); double bmi = bmiCalculatorService.calculateBmi(height, weight); tvResult.setText(String.format(Locale.getDefault(), "%.2f", bmi)); } } }); Intent intent = new Intent(this, BmiCalculatorService.class); bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE); } @Override protected void onDestroy() { super.onDestroy(); if (isServiceBound) { unbindService(serviceConnection); isServiceBound = false; } } } ``` 使用该代码,您可以在Android应用中启动一个本地服务来计算BMI指数,并在MainActivity中获取用户输入的身高和体重数据,然后使用Binder对象调用该服务的计算BMI指数的方法。在用户点击计算按钮后,计算结果将显示在TextView中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值