Логическое значение, которое проверяет, нажата ли кнопка, по какой-то причине не работает - PullRequest
0 голосов
/ 28 мая 2020

Я искал на этом форуме, как сделать логическое значение, которое переключается на true при нажатии. У меня в программе две кнопки: да и нет. Когда я нажимаю на них, в методе onClick логическое значение переключается на true, но в остальной части кода оно остается ложным.

Код:

public class MainActivity extends AppCompatActivity { 


    static boolean yesisclicked=false; 
    static boolean noisclicked=false; 




    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 


        final Button comment; 

        final Button yes; 
        final Button no; 

comment =findViewById(R.id.comment); 



yes= findViewById(R.id.yes); 
no = findViewById(R.id.no); 



yes.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
yesisclicked=true; 
                noisclicked=false; 


            } 
        }); 
        no.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                noisclicked=true; 
yesisclicked=false; 


            } 
        }); 
comment.setText(""+noisclicked); 

Почему это происходит и как мне это решить?

1 Ответ

0 голосов
/ 28 мая 2020

Вы смешиваете кнопки и c логические значения с тем же именем, и в ваших обработчиках onclick вы, кажется, используете некоторые переменные с локальной областью.

Думаю, это должно сработать:

public class MainActivity extends AppCompatActivity {

    static boolean yesClicked = false;
    static boolean noClicked  = false;

    @Override 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Button comment = findViewById(R.id.comment);
        final Button yes = findViewById(R.id.yes);
        final Button no  = findViewById(R.id.no);

        yes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                yesClicked = true;
                noClicked  = false;
                // comment.setText("Yes clicked!" + yesClicked);
            }
        });

        no.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                yesClicked = false;
                noClicked  = true;
                // comment.setText("No clicked! " + noClicked);
            } 
        });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...