androidbmi体质指数计算器代码
时间: 2023-06-22 17:42:11 浏览: 108
以下是一个简单的 Android BMI 体质指数计算器的代码示例:
MainActivity.java:
```java
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText heightEditText, weightEditText;
private TextView resultTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
heightEditText = findViewById(R.id.heightEditText);
weightEditText = findViewById(R.id.weightEditText);
resultTextView = findViewById(R.id.resultTextView);
}
public void calculateBMI(View view) {
String heightString = heightEditText.getText().toString();
String weightString = weightEditText.getText().toString();
if (heightString.isEmpty() || weightString.isEmpty()) {
resultTextView.setText(R.string.empty_input_error);
return;
}
float height = Float.parseFloat(heightString);
float weight = Float.parseFloat(weightString);
float bmi = calculateBMI(height, weight);
String bmiCategory = getBMICategory(bmi);
String result = getString(R.string.bmi_result, bmi, bmiCategory);
resultTextView.setText(result);
}
private float calculateBMI(float height, float weight) {
return weight / (height * height);
}
private String getBMICategory(float bmi) {
if (bmi < 18.5) {
return getString(R.string.underweight);
} else if (bmi < 25) {
return getString(R.string.normal_weight);
} else if (bmi < 30) {
return getString(R.string.overweight);
} else {
return getString(R.string.obese);
}
}
}
```
activity_main.xml:
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/heightEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:hint="@string/height_hint"
android:layout_marginTop="32dp"
android:layout_centerHorizontal="true" />
<EditText
android:id="@+id/weightEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:hint="@string/weight_hint"
android:layout_below="@id/heightEditText"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp" />
<Button
android:id="@+id/calculateButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/calculate_button_text"
android:layout_below="@id/weightEditText"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:onClick="calculateBMI" />
<TextView
android:id="@+id/resultTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/result_text"
android:layout_below="@id/calculateButton"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp" />
</RelativeLayout>
```
strings.xml:
```xml
<resources>
<string name="app_name">BMI Calculator</string>
<string name="height_hint">Height (m)</string>
<string name="weight_hint">Weight (kg)</string>
<string name="calculate_button_text">Calculate BMI</string>
<string name="result_text">Your result will appear here</string>
<string name="empty_input_error">Please enter your height and weight</string>
<string name="bmi_result">Your BMI is %.1f, which is %s</string>
<string name="underweight">underweight</string>
<string name="normal_weight">normal weight</string>
<string name="overweight">overweight</string>
<string name="obese">obese</string>
</resources>
```
这个应用程序包含一个 EditText,用于输入身高和体重,一个 Button,用于计算 BMI,以及一个 TextView,用于显示结果。当用户点击 Calculate BMI 按钮时,它将调用 calculateBMI() 方法来计算 BMI,并使用 getBMICategory() 方法来确定 BMI 的类别。最后,它将格式化一个字符串并将其显示在 TextView 中。
阅读全文