Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: Use a SWITCH statement with setOnClickListener/onClick for more than 1 button?

Let's say I have a few buttons in a LinearLayout, 2 of them are:

mycards_button = ((Button)this.findViewById(R.id.Button_MyCards)); exit_button = ((Button)this.findViewById(R.id.Button_Exit)); 

I register setOnClickListener() on both of them:

mycards_button.setOnClickListener(this); exit_button.setOnClickListener(this); 

How do I make a SWITCH to differentiate between the two buttons within the Onclick ?

public void onClick(View v) {   switch(?????){     case ???:       /** Start a new Activity MyCards.java */       Intent intent = new Intent(this, MyCards.class);       this.startActivity(intent);       break;     case ???:       /** AlerDialog when click on Exit */       MyAlertDialog();       break; } 
like image 422
Hubert Avatar asked Oct 01 '09 14:10

Hubert


1 Answers

Use:

  public void onClick(View v) {      switch(v.getId()){        case R.id.Button_MyCards: /** Start a new Activity MyCards.java */         Intent intent = new Intent(this, MyCards.class);         this.startActivity(intent);         break;        case R.id.Button_Exit: /** AlerDialog when click on Exit */         MyAlertDialog();         break;     } } 

Note that this will not work in Android library projects (due to http://tools.android.com/tips/non-constant-fields) where you will need to use something like:

int id = view.getId(); if (id == R.id.Button_MyCards) {     action1(); } else if (id == R.id.Button_Exit) {     action2(); } 
like image 116
Intrications Avatar answered Sep 24 '22 18:09

Intrications