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
相关产品推荐
相关产品推荐

