You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Java调用自定义模块方法实现EditText计算结果展示

现有代码存在的问题

  • 自定义库的fullThrottle方法是无返回值的,仅在控制台打印日志,Android端无法拿到计算结果回显
  • 输入值的获取逻辑写在onCreate中,应用刚启动用户还未输入就已经读了空值,点击计算时拿到的还是初始的空字符串
  • 从EditText获取的输入是字符串类型,未转换为double就直接传入要求数字参数的方法,会报类型错误
  • 重复给calculateY设置了两次点击事件,属于无效代码
  • 结果输出逻辑缺失,拿到计算结果后没有赋值给结果EditText显示

修正后的代码

1. 库模块的JavaMathExample1.java

package com.example.javaprogram;

public class JavaMathExample1 {
    // 改为带返回值的方法,返回计算得到的最大值
    public double getMaxValue(double x, double y) {
        return Math.max(x, y);
    }
}

2. MainActivity.java

package com.example.testdemo;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.javaprogram.JavaMathExample1;

public class MainActivity extends AppCompatActivity {
    EditText calculateX, calculateY, output;
    JavaMathExample1 javaMathExample1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 绑定控件
        calculateX = findViewById(R.id.calculateX);
        calculateY = findViewById(R.id.calculateY);
        output = findViewById(R.id.math_test2);
        // 提前初始化工具类实例,无需每次点击重复创建
        javaMathExample1 = new JavaMathExample1();

        // 点击结果框触发计算,也可自行添加Button控件触发,逻辑完全一致
        output.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 点击时才读取最新输入值
                String xStr = calculateX.getText().toString().trim();
                String yStr = calculateY.getText().toString().trim();
                
                // 空输入校验
                if (xStr.isEmpty() || yStr.isEmpty()) {
                    Toast.makeText(MainActivity.this, "请先输入x和y的值", Toast.LENGTH_SHORT).show();
                    return;
                }
                
                try {
                    // 字符串转数字类型
                    double x = Double.parseDouble(xStr);
                    double y = Double.parseDouble(yStr);
                    // 调用库方法计算
                    double result = javaMathExample1.getMaxValue(x, y);
                    // 结果回显到输出框
                    output.setText(String.valueOf(result));
                } catch (NumberFormatException e) {
                    // 捕获非法输入异常,给用户提示
                    Toast.makeText(MainActivity.this, "请输入有效的数字", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

可选优化建议

如果觉得点击输出框触发计算不符合使用习惯,可以在布局中新增一个按钮控件,给按钮设置上述点击事件即可。

内容的提问来源于stack exchange,提问作者pansego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:06:04