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

我使用这个 java 代码来编写Android RPN 计算器

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

接下来的事件将被忽略(没有通过 Toast 的消息,并且文本视图字段中没有更改)。你知道为什么吗?

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;

    }

}


扬帆大鱼
浏览 27回答 1
1回答

Cats萌萌

您需要setContentView(R.layout.activity_main);从您的onClick()方法中删除 。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java