Почему EventListener работает только в первый раз? - PullRequest
0 голосов
/ 03 ноября 2019

Я использую этот код Java для кодирования Калькулятора RPN Android .

Сейчас я нахожусь в стадии, когда нажатие на кнопку вызывает значение кнопки, которая будет отображатьсяв поле TextView (или, по крайней мере, для отображения чего-либо с Toast.makeText), но, к сожалению, это работает только для первого нажатия кнопки.

Следующие события игнорируются (нет сообщений через тост и никаких изменений в полях 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 Ответ

1 голос
/ 03 ноября 2019

Вам необходимо удалить setContentView(R.layout.activity_main); из вашего onClick() метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...