为了账号安全,请及时绑定邮箱和手机立即绑定

计算器的多个 onClick 函数?

计算器的多个 onClick 函数?

隔江千里 2023-02-16 15:51:23
https://imgur.com/a/2UyKR8rpublic class MainActivity extends AppCompatActivity {    int c,d;    float x,y,z,a;    EditText ed1,ed2;    TextView t1;    Button b1,b2,b3,b4;    public void add(View v){       ed1 =  findViewById(R.id.editText);       ed2 =  findViewById(R.id.editText2);       t1  =  findViewById(R.id.textView);       b1    =  findViewById(R.id.button);       b2    =  findViewById(R.id.button2);       b3    =  findViewById(R.id.button3);       b4    =  findViewById(R.id.button4);       c = Integer.parseInt(ed1.getText().toString());       d = Integer.parseInt(ed2.getText().toString());       x = c + d;       t1.setText(String.valueOf(x));    }    public void sub(View v){        y = c-d;        t1.setText(String.valueOf(y));    }    public void mul(View v){        z = c*d;        t1.setText(String.valueOf(z));    }    public void div(View v){        a = c/d;        t1.setText(String.valueOf(a));    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }}单击减法(子)、乘法、除法时应用程序崩溃。但是如果我先做加法然后点击任何其他功能它会工作正常,这是第一次点击按钮时。检查图像。
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

您正在该add方法中初始化您的视图。你应该在onCreate方法中这样做。这就是为什么如果您先单击添加按钮它会起作用的原因。


public void add(View v){

   c = Integer.parseInt(ed1.getText().toString());

   d = Integer.parseInt(ed2.getText().toString());

   x = c + d;

   t1.setText(String.valueOf(x));

}

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


    ed1 = findViewById(R.id.editText);

    ed2 = findViewById(R.id.editText2);

    t1 = findViewById(R.id.textView);

    b1 = findViewById(R.id.button);

    b2 = findViewById(R.id.button2);

    b3 = findViewById(R.id.button3);

    b4 = findViewById(R.id.button4);

}

编辑:您仅在方法中从 EditText 获取值add。您应该为其余操作添加以下两行:


c = Integer.parseInt(ed1.getText().toString());

d = Integer.parseInt(ed2.getText().toString());


查看完整回答
反对 回复 2023-02-16
?
函数式编程

TA贡献1807条经验 获得超9个赞

确切地说你会崩溃(NullPointerException因为null object reference t1还没有引用所以你必须add()调用onCreate方法


 @Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    add()

}


查看完整回答
反对 回复 2023-02-16
  • 2 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信