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

Android Studio Java获取用户输入调用自定义类输出的语法求助

实现需求的修正代码说明

核心错误点

你原来的代码存在3个逻辑错误,导致无法得到预期结果:

  • 初始化DivePartner对象时,没有传入用户输入的姓名、认证编号、角色,而是传入了三个空字符串
  • 赋值逻辑写反:将用户输入的变量覆盖为DivePartner中的空值,而不是把用户输入的内容传给DivePartner
  • 最终只把结果打印到了控制台,没有设置到页面的输出输入框中,APP界面看不到输出内容

修正后的代码

1. DivingBuddy.java(仅需修改Complete按钮的点击事件逻辑,其余代码不变)

// Complete按钮点击事件的修正后代码
findViewById(R.id.complete_DiveBuddySection).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // 先获取用户输入的所有内容
        String inputName = name.getText().toString().trim();
        String inputCertNumber = certNum.getText().toString().trim();
        String inputRole = role.getText().toString().trim();

        // 非空校验
        if(inputName.isEmpty() || inputCertNumber.isEmpty() || inputRole.isEmpty()){
            Toast.makeText(DivingBuddy.this,"请填写潜伴的姓名、认证编号和角色", Toast.LENGTH_LONG).show();
            return;
        }
        // 把用户输入的内容传给DivePartner构造方法
        DivePartner divePartner = new DivePartner(inputName, inputCertNumber, inputRole);
        // 调用toString方法获取格式化后的结果
        String result = divePartner.toString();
        // 把结果设置到输出框显示
        output.setText(result);
        // 可选:如果不需要用户修改输出结果,可以把输出框设为不可编辑
        output.setFocusable(false);
        output.setFocusableInTouchMode(false);
    }
});

2. DivePartner.java 无需修改,注意导入包即可

如果你的DivePartner是放在独立库中,在DivingBuddy.java顶部添加导入语句即可:

import com.example.divepartner.DivePartner;

效果说明

修改完成后,用户填写三个字段点击Complete按钮:

  • 任意字段为空会弹出提示
  • 全部填写完成后,输出框会自动展示格式化后的潜伴信息,格式为Name: 填写的姓名, CertNum: 填写的认证号, Role: 填写的角色

内容的提问来源于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 14:15:02