OnClick Listener , Button in Android

  • Antworten:1
Apfel3
  • Forum-Beiträge: 4

08.12.2011, 20:41:14 via Website

Hallo zusammen,

Bin mir nicht ganz sicher ob ich das hier an der richtigen stelle Posten
Kann mir jemand dabei helfen den folgenden Code zu verstehen?

public void onClick(View v)
{
// TODO Auto-generated method stub

switch (v.getId())
{
case R.id.bvorw:
bvorw = (Button)findViewById(R.id.bvorw);
updateVorw();
break;

public void onClick(View v) heist doch nur das diese Methode aufgerufen wird wenn der Button betätigt wurde was macht dann der Rest wie v.getID oder R.id.bvorw oder (Button)findViewbyID(R.id.bvorw)

Vielen dank fürs Antworten

Antworten
Florian B.
  • Forum-Beiträge: 284

08.12.2011, 22:17:42 via Website

Man kann einen OnClickListener auf unterschiedliche Arten implementieren.

1. Man deklariert ihn inline. Somit hat der Button seinen eigenen Listener, den er sich mit keinem anderen Button teilt.
2. Die Activity implementiert das OnClickListener Interface und man weist die Activity dem Button als OnClickListener zu. Wenn man nun mehrere Button aus der Seite hat und allen die Activity zuweist, dann teilen sich alle den gleichen Listener. Somit muss man beim onClick Event überprüfen, welcher Button geklickt wurde. Und das passiert bei dem switch-Statement. Die Id der View die den Event ausgelöst hat, also die eines Buttons, wird mit der Id R.id.bvorw verglichen. Stimmt sie überein, dann wird der Code bis zum break ausgeführt. Auf diese wird der Code, der bei dem jeweiligen Button ausgeführt werden soll, ausgeführt.

1bvorw = (Button)findViewById(R.id.bvorw);

Hier wird der Klassenvariable bvorw der Button mit der Id R.id.bvorw aus dem aktuellen Layout zugewiesen. Warum das gemacht wird, ist aus dem Code nicht ersichtlich.

Am Ende wird dann noch die Methode updateVorw(); aufgerufen.

— geändert am 08.12.2011, 22:18:23

Antworten