Android Studio中使用Gettext出现报错,该如何修复?
Android Studio中使用getText()遇错的修复方案
问题分析
你的代码存在两处关键错误导致报错:
- 变量引用混乱:通过
findViewById获取了buttonadd按钮实例,但给未初始化的add_button设置点击监听,会触发空指针异常 getText()调用和Float.parseFloat用法错误:Float.parseFloat仅接受字符串参数,你错误地将输入框实例作为参数传递,且getText()必须通过输入框实例调用
修复后的代码
public class MainActivity extends AppCompatActivity { private TextView resultat; private EditText input_number1, input_number2; private Button buttonadd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); resultat = findViewById(R.id.resultat); input_number1 = findViewById(R.id.input_number1); input_number2 = findViewById(R.id.input_number2); buttonadd = findViewById(R.id.buttonadd); buttonadd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 正确调用输入框的getText()方法并转为字符串 float num1 = Float.parseFloat(input_number1.getText().toString()); float num2 = Float.parseFloat(input_number2.getText().toString()); float res = num1 + num2; resultat.setText(String.valueOf(res)); } }); } }
额外优化提示
如果输入框为空或输入非数字内容,Float.parseFloat会抛出NumberFormatException,可以添加异常处理避免崩溃:
buttonadd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { // 先去除输入内容前后空格 float num1 = Float.parseFloat(input_number1.getText().toString().trim()); float num2 = Float.parseFloat(input_number2.getText().toString().trim()); float res = num1 + num2; resultat.setText(String.valueOf(res)); } catch (NumberFormatException e) { resultat.setText("请输入有效数字"); } } });
内容的提问来源于stack exchange,提问作者SemBeg
相关产品推荐
相关产品推荐

