Как заставить кнопку возвращать логическое значение?

#android #button #boolean #handler #runnable

#Android #кнопка #логическое #обработчик #выполняемый

Вопрос:

Я пытаюсь создать приложение для секундомера, которое при нажатии кнопки «Пуск» запускается, а при нажатии кнопки «Стоп» останавливается. Я использую обработчик и могу выполняться с задержкой отправки, но я хочу, чтобы он отправлял сообщение только в том случае, если кнопка остановки не была нажата. Именно так я говорю о реализации того, о чем я говорю.

 if(!StopBClicked()){
     handler.postDelayed(r, 1000);
}
 

Это то, что у меня есть до сих пор, чтобы сделать это логической вещью.

 public boolean StopBClicked() {
    Button StopB = (Button)findViewById(R.id.StopB);
    StopB.setOnClickListener(new View.OnClickListener(){
        return true;
    }
}
 

Но, как вы можете догадаться, это не работает. Это выдает мне ошибку в «)» после OnClickListener(. Я немного новичок, поэтому был бы признателен за пример кода. Спасибо.

Комментарии:

1. Вы этого не делаете. Действительно. Это имеет смысл — что бы получить значение?

Ответ №1:

Просто запустите действие при нажатии кнопки.

Добавьте это в свой onCreate :

 Button StopB = (Button)findViewById(R.id.StopB);
StopB.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        handler.postDelayed(r, 1000);
    }
}
 

Комментарии:

1. 1 Пользовательский интерфейс Android — это программирование, управляемое событиями .

Ответ №2:

Я не занимался разработкой Android, но я бы предположил, что это синтаксическая ошибка. Предполагая, что это не ошибка копирования, допущенная редактором StackOverflow, вставляющим некоторый код, не должно ли это быть:

 private boolean StopBClicked() {
    Button StopB = (Button)findViewById(R.id.StopB);
    StopB.setOnClickListener(new View.OnClickListener(){
        return true;
    });
}
 

Комментарии:

1. Ну, это выдает ошибку, говорящую об этом представлении. Функция OnClickListener() не реализована. Обычно это реализуется с помощью public void onClick(){}