Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onClick事件按钮_Android_Button_Onclick - Fatal编程技术网

Android onClick事件按钮

Android onClick事件按钮,android,button,onclick,Android,Button,Onclick,我有5个按钮,每个按钮打开另一个活动。如何使clickeble在当前时刻仅显示其中一个?当我同时单击两个不同的按钮时,单击事件调用两次,将打开两个不同的活动。我怎样才能解决我的问题。谢谢,我的密码 public void onClick(View v) { switch (v.getId()) { case R.id.play_button: onPlayClick();

我有5个按钮,每个按钮打开另一个活动。如何使clickeble在当前时刻仅显示其中一个?当我同时单击两个不同的按钮时,单击事件调用两次,将打开两个不同的活动。我怎样才能解决我的问题。谢谢,我的密码

public void onClick(View v)
     {
            switch (v.getId()) 
            {
            case R.id.play_button:
                onPlayClick();
                setButtonsEnable(false);
                break;
            case R.id.difficalty_button:
                onDifficultyClick();
                setButtonsEnable(false);
                break;
            case R.id.hight_scores_button:
                onHighScoresClick();
                setButtonsEnable(false);
                break;
            case R.id.share_button:
                setButtonsEnable(false);
                break;
            case R.id.turn_off_button:
                onLeaderboardClick();
                setButtonsEnable(false);
                break;
            default:
                break;
            }
    }
返回主要活动后,我使我的按钮可点击

protected void onResume() {
    super.onResume();
    setButtonsEnable(true);
}

public void setButtonsEnable(boolean config) 
{
    playBtn.setClickable(config);
    difficultyBtn.setClickable(config);
    hScoreBtn.setClickable(config);
    shareBtn.setClickable(config);
    turnOffButton.setClickable(config);
}

也许你真正需要的是放射组?它允许开箱即用,一次只选择一个按钮

你会耍花招,还是你可以

setClickable(false)

活动中单击创建变量

boolean clicked=false;
在onClick代码中设置此值:

 public void onClick(View v)
 {
       if(!clicked){
        clicked=true;
        switch (v.getId()) 
        {
        case R.id.play_button:
            onPlayClick();
            setButtonsEnable(false);
            break;
        case R.id.difficalty_button:
            onDifficultyClick();
            setButtonsEnable(false);
            break;
        case R.id.hight_scores_button:
            onHighScoresClick();
            setButtonsEnable(false);
            break;
        case R.id.share_button:
            setButtonsEnable(false);
            break;
        case R.id.turn_off_button:
            onLeaderboardClick();
            setButtonsEnable(false);
            break;
        default:
            break;
        }}
}

如果要在每次单击时打开活动,请对每个按钮使用onClick侦听器,或通过android:onClick=“somethod”在xml布局中添加方法调用,当您单击一个按钮并调用另一个活动时,UI应该会阻止自己…您是否尝试过这种方式?

以及此代码应该做什么?)它将仅从“播放”按钮捕获onClick事件。我认为这是您想要的。让我编辑我的ans。这应该有效,但不要认为这是最好的方法。谢谢。当我使用setClickable(false)而不是setEnabled(false)时,结果是相同的。请尝试在setClickListener上使用null值
 public void onClick(View v)
 {
       if(!clicked){
        clicked=true;
        switch (v.getId()) 
        {
        case R.id.play_button:
            onPlayClick();
            setButtonsEnable(false);
            break;
        case R.id.difficalty_button:
            onDifficultyClick();
            setButtonsEnable(false);
            break;
        case R.id.hight_scores_button:
            onHighScoresClick();
            setButtonsEnable(false);
            break;
        case R.id.share_button:
            setButtonsEnable(false);
            break;
        case R.id.turn_off_button:
            onLeaderboardClick();
            setButtonsEnable(false);
            break;
        default:
            break;
        }}
}