以编程方式更改按钮的onClick方法?

时间:2016-10-23 17:34:30

标签: android

该按钮在xml中已有方法:

android:onClick="playSound"

我在活动中创建了方法:

public void playSound (View view){ //code1 }

我想按下按钮将onClick更改为活动中的现有方法

public void pauseSound(View view){ //code2 }

当我再次按下按钮时,我希望onClick返回原始方法,

public void playSound (View view){ //code1 }

提示:我在同一方法playSound

上使用多个按钮

1 个答案:

答案 0 :(得分:3)

定义变量(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"