Raman Branavitski
Raman Branavitski

Reputation: 894

onClick event buttons

I have 5 buttons,each of them open another activity. How to make clickeble only one of them at current moment?When i click 2 different buttons simultaneusly onClick event calls 2 times and 2 different activities opens. How can i resolve my problem. Thanks.My code

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;
            }
    }

After return to main activity i make my buttons clickable

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);
}

Upvotes: 0

Views: 127

Answers (4)

Angmar
Angmar

Reputation: 599

If you want to open an activity on each click, use a onclicklistener for each button or add a method call in the xml layout via android:onClick="someMethod", when you click a button and call another activity the UI should block itself...have you tried it this way?

Upvotes: 0

vipul mittal
vipul mittal

Reputation: 17401

Create a variable clicked in Activity:

boolean clicked=false;

Set this value in onClick code:

 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;
        }}
}

Upvotes: 0

Nathua
Nathua

Reputation: 8826

setOnClickListener(null)

would do the trick or you can make

setClickable(false)

Upvotes: 1

Adam Radomski
Adam Radomski

Reputation: 2575

Maybe what you really need is RadioGroup? It allows out of the box to select click/select only one button at the time.

Doc reference

Tutorial

Upvotes: 0

Related Questions