3D-kreativ
3D-kreativ

Reputation: 9301

One method for several buttons?

Instead of have to call separate method for each button, would it be possible to just use one method and check which button it was that was clicked by it's id?

I'm using the simple way like android:onClick="activateButtons"

public void activateButtons(View v)
{
    if(?? == btn_1)
    {
    Code for button with ID = btn_1
    }
    if(?? == btn_1)
    {
    Code for button with ID = btn_2
    }
}

Upvotes: 1

Views: 87

Answers (3)

Brandon Poole
Brandon Poole

Reputation: 372

public void onClickKeyPad(View view)
{
    EditText text = (EditText)findViewById(R.id.text_password);

    switch(view.getId())
    {
    case R.id.button_0:
        text.setText(text.getText() + "0");
    break;
    case R.id.button_1:
        text.setText(text.getText() + "1");
    break;

    case R.id.button_cancel:
        finish();
    break;

    default:
    break;
    }
}

Upvotes: 1

onit
onit

Reputation: 6366

You can do that if you tag the buttons with an Id. Set the android:id="@+id/yourbuttonid" in the xml file. Then do if(v.getId() == R.id.yourbuttonid) in the onClick method.

Upvotes: 2

Richie
Richie

Reputation: 9266

Yes it is possible. You can assign specific ids(eg: button1) for buttons and then call v.getId() in activateButtons(onclick method) to check if it is equal to R.id.button1 and then do your operation there.

Cheers,

Richie

Upvotes: 1

Related Questions