Я разрабатываю программу, которая запускает цикл while в одной из своих локальных функций с именем Record()
. Когда нажата кнопка с именем X, условие переменной становится истинным, а функция записи запускается. Я хочу, чтобы при нажатии другой кнопки Y условие было изменено и, следовательно, при остановке цикла. Проблема в том, что при запуске цикла он не прослушивает нажатие кнопки Y. Что мне делать. остановить цикл while, изменив его состояние на другую функцию. Пример кода, как показано ниже:Как изменить выражение while во время работы
// clicking Button Y
private View.OnClickListener XonClickListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
condition = true;
record();
}
}
// clicking Button Y
private View.OnClickListener YonClickListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
condition = false;
}
}
// Record function
private void Record(){
while (condition){
// do something
}
}
Трудно точно сказать, что не так, без * фактического * кода (поскольку вы не знаете, что такое ошибка, вы, вероятно, не считаете, что это вызывает проблему). Однако, я предполагаю, что 'condition' не объявляется' volatile'. – chrylis
Как вы получаете доступ к методу записи? – Nfear