为什么EventListener只在第一次工作?

时间:2019-11-03 05:35:32

标签: java android-studio calculator event-listener

我使用此Java代码来编写 Android RPN计算器

现在我处于一个阶段,在该阶段中,单击按钮会触发按钮的值显示在 TextView 字段中(或至少显示带有Toast.makeText的内容),但是不幸的是,它仅适用于第一次单击按钮。

下一个事件被忽略(没有通过Toast的消息,并且textview字段没有变化)。你知道为什么吗?

  

MainActivity.java

@Override
public void onClick(View v) {

    setContentView(R.layout.activity_main);


    switch (v.getId()){
        case R.id.btn0:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("0");
            Toast.makeText( this, "btn0", Toast.LENGTH_SHORT).show();
            break;
        case R.id.btn1:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("1");
            Toast.makeText( this, "btn0", Toast.LENGTH_SHORT).show();
            break;
        case R.id.btn2:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("2");
            Toast.makeText( this, "btn0", Toast.LENGTH_SHORT).show();
            break;
        case R.id.btn3:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("3");
            break;
        case R.id.btn4:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("4");
            break;
        case R.id.btn5:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("5");
            break;
        case R.id.btn6:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("6");
            break;
        case R.id.btn7:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("7");
            break;
        case R.id.btn8:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("8");
            break;
        case R.id.btn9:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.append("9");
            break;


        case R.id.Plus:

            break;
        case R.id.Minus:

            break;
        case R.id.Power:

            break;
        case R.id.Root:

            break;

        case R.id.MPlus:

            break;
        case R.id.MMinus:

            break;
        case R.id.AC:
            stackedit0 = findViewById(R.id.stackedit0);
            stackedit0.setText("");
            break;
        case R.id.MRC:

            break;



    }
}

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要从setContentView(R.layout.activity_main);方法中删除onClick()