#android
#Android
Вопрос:
У кнопки уже есть метод в xml:
android:onClick="playSound"
Я создал метод в activity:
public void playSound (View view){ //code1 }
Я хочу, чтобы при нажатии кнопки менялся onClick
существующий метод в activity,
public void pauseSound(View view){ //code2 }
и когда я нажимаю кнопку снова, я хочу onClick
вернуться к исходному методу,
public void playSound (View view){ //code1 }
Подсказка: я использую несколько кнопок для одного и того же метода playSound
Комментарии:
1. Просто используйте логическую переменную в качестве держателя статуса.
2. Вероятно, вы можете использовать переменную в качестве флага и вызывать различные методы изнутри вашего
playSound
.3. я пытался использовать логическое значение, прежде чем публиковать свой вопрос, но оно не выполняется динамически с несколькими кнопками (как я использую в своем приложении)
Ответ №1:
Определите переменную ( int
/ bool
), используйте ее в качестве флага и вызывайте методы по мере необходимости.
bool flag = 0;
public void playSoundHandler (View view){
if (flag) playSound(view);
else pauseSound(view);
}
playSound (View view) {
// Your code
flag = 1;
}
pauseSound (View view) {
// Your code
flag = 0;
}
и установить onClick="playSoundHandler"
.
Редактировать
В случае, если вы не можете изменить свой playSound
метод, поскольку он используется несколькими кнопками, вы можете сделать следующее:
bool flag = 0;
public void playSoundHandler (View view){
if (!flag) {
playSound(view);
flag = 1;
} else {
pauseSound(view);
flag = 0;
}
}
playSound (View view) {
// Your code
}
pauseSound (View view) {
// Your code
}
и установить onClick="playSoundHandler"
для этой конкретной кнопки.
Комментарии:
1. я использую несколько кнопок в одном и том же методе «PlaySound», это решение не выполняется динамически с несколькими кнопками
2. @boody Если вам нужны разные флаги для разных кнопок, сохраните массив логических флагов. Если вы говорите, что множество кнопок обращаются к вашему
playSound()
методу, и вы не хотите его менять, тогда посмотрите на последнюю правку. Если это не так, возможно, вам потребуется объяснить вашу проблему немного подробнее.