2010-08-17 9 views
8

Ich habe zwei Bild-Taste für Next und Back und ich Onclick-Ereignis für diese Taste Ich möchte, welche Bild-Taste Feuer on onclick und bestimmte Funktion für nächste oder zurück in onclick Ereignis wie werde ich welches Bild button fire oder onclick event zur LaufzeitOnclick Listener in Android

Antwort

11

Sie können anonyme innere Klassen verwenden, um eine OnClick-Funktion für jede Schaltfläche zu schreiben.

Button button1 = getMyButton(); 
button1.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // button 1 was clicked! 
    } 
    }); 
Button button2 = getMyButton(); 
button2.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // button 2 was clicked! 
    } 
    }); 

Wie Konstantin erwähnt, können Sie auch die übergebene Ansicht verwenden und die ID einschalten. Allerdings finde ich das etwas unordentlicher, wenn man am Ende viele klickbare Dinge hat.

+0

Ich bin ziemlich sicher, dass dies die bevorzugte Methode ist, es sei denn, Sie haben viele Tasten – Falmarri

12

Verwenden Sie View.getId(), um zwischen verschiedenen Ansichten zu unterscheiden, die onClick-Ereignisse auslösen.

@Override 
public void onClick(View view) { 
    super.onClick(view); 
    switch (view.getId()) { 
    case R.id.download: 
    //code.. 
    break; 
    case R.id.play: 
    //code.. 
    break; 
    case R.id.pause: 
     //code.. 
    break; 
    default: 
     //code.. 
    break; 
    } 
} 
+0

Hallo ich verwende folgendes Konzept imgvw_back.setOnClickListener (this) imgvw.setOnClickListener (this); statisch int i = 10; @Override public void onClick (Blick v) { \t // TODO Automatisch generierte Methode \t \t Schalter (v.getId()) \t { \t Fall R.id.back Stummel: \t \t Log .v ("zurück", "" + i--); \t \t Bruch; \t \t \t Fall R.Id.forward: Log.v ("next", "" + i ++); Pause; \t \t \t \t} \t } aber hat nicht funktioniert, ich weiß nicht, warum laufen didnot? Meist nächste Wort angezeigt in log – sivaraj

+0

Haben Sie bei der onClick Methode einen Haltepunkt einzurichten versucht? Läuft es überhaupt? –