2010-08-05 34 views

Odpowiedz

38

Większość ellegant wzór do naśladowania:

public void onClick(View v) { 
switch(v.getId()) 
{ 
case R.id.button_a_id: 
// handle button A click; 
break; 
case R.id.button_b_id: 
// handle button B click; 
break; 
default: 
throw new RuntimeException("Unknow button ID"); 
} 

Ten sposób jest o wiele prostszy do debugowania i pilnuje, aby nie przegapić obsłużyć dowolny Kliknij.

1

Jeśli przez „wykonujący tę samą metodę” ty oznaczają przysługującego OnClickListener potem trzeba odwoływać parametr jest przekazywana do niego.

public void onClick(View v) { 
    if(v==btnA) { 
     doA(); 
    } else if(v==btnB) { 
     doB(); 
    } 
} 
-1

Ok mam rozwiązanie

if (yesButton.getId() == ((Button) v).getId()){ 

    // remainingNumber 
} 

else if (noButton.getId() == ((Button) v).getId()) 
{ 
    // it was the second button 
} 
4

LUB ... możesz po prostu umieścić androida: onClick = "foo" w kodzie xml przycisku i zdefiniować metodę na java z podpisem. Wewnątrz metody foo uzyskać identyfikator i porównać ją z jednego trzeba

public void foo(View v){ 

if (v.getId() == R.id.yourButton){ 

} 

else if (v.getId() == R.id.nextButton){ 

} 

} 
4

mam 10 przycisków wykonujących tę samą metodę updateText() użyłem tego kodu, aby uzyskać klikniętego przycisku, tekst:

public void updateText(View v){ 
    Button btn = (Button) findViewById(v.getId()); 
    String text = btn.getText().toString(); 
} 
Powiązane problemy