package com.example.ibm; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import com.google.gson.Gson; import java.io.IOException; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private EditText etHeight; private EditText etWeight; private Button btnCalculate; private TextView tvResult; private OkHttpClient client; private Gson gson; private static final String API_KEY = "d889e63ef7ad041b837dcc1b3ebc5a2b"; private static final String API_URL = "http://apis.juhe.cn/fapig/calculator/weight"; @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); btnCalculate = findViewById(R.id.btn_calculate); tvResult = findViewById(R.id.tv_result); client = new OkHttpClient(); gson = new Gson(); btnCalculate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String height = etHeight.getText().toString(); String weight = etWeight.getText().toString(); if (height.isEmpty() || weight.isEmpty()) { tvResult.setText("请输入身高和体重"); return; } float h = Float.parseFloat(height); float w = Float.parseFloat(weight); if (h <= 0 || w <= 0) { tvResult.setText("身高和体重必须大于0"); return; } calculateBMI(h, w); } }); }
时间: 2024-02-14 12:14:26 浏览: 89
Android 与 Vue.js 的结合
这是一个 Android 应用程序的 Java 代码,包括一个 MainActivity 类来处理用户界面和计算BMI的逻辑。在 onCreate 方法中,它首先通过 findViewById 方法获取布局文件中的各个控件,并创建了一个 OkHttpClient 对象和一个 Gson 对象。然后,它为“计算BMI”按钮设置了一个点击事件监听器,当用户点击按钮时,将从身高和体重 EditText 中获取输入的值,然后进行一些检查,如确保输入的值是数字且大于0。如果输入无效,则在 TextView 中显示相应的错误消息。否则,它将调用 calculateBMI 方法来计算BMI。其中,它使用 OkHttp 库来向 API 发送 HTTP 请求,并将 API 返回的 JSON 数据解析为一个对象,最后将计算结果显示在 TextView 中。
阅读全文