为什么 EventListener 只在第一次工作?
Why does the EventListener work only the first time?
我使用这个 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;
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;
}
}
谢谢!
您需要从 onClick()
方法中删除 setContentView(R.layout.activity_main);
。
我使用这个 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;
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;
}
}
谢谢!
您需要从 onClick()
方法中删除 setContentView(R.layout.activity_main);
。