Click zu Button zuordnen

  • Antworten:3
  • Bentwortet
Robbiani Renato
  • Forum-Beiträge: 602

19.11.2018, 21:33:45 via Website

Hallo zusammen

Ich schreibe meine ersten Programme. Nun bin ich mir beim Benutzen der Buttons nicht so sicher. Meine Lösung funktioniert, aber ich bin mir nicht sicher ob dies auch so richtig ist.

Also um die clicks für die Buttons abzufangen habe ich folgendes gemacht:
Zunächst habe ich meine Klasse mit "implements View.OnClickListener" ergänzt. Danach habe ich für jeden Button eine Funktion geschrieben.

public void click_proben(View v){
    schirm.loadUrl("");
}

Anschliessend habe ich im Layout im Atributt des Buttons im onClick die Funktion eingetragen. Ist das so Ok. Oder macht man das anders?

Gruss Renato

Kommentieren
Beste Antwort
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.11.2018, 09:11:45 via Website

Hallo Renato,

du vermischt hier zwei onCklick Techniken:
1. Entweder mit View.OnClickListener
2. oder (xor ;)) per XML onClick Tag und Methode

Ich selber bevorzuge die erste Methode, da man da im Code die ButtonKlicks sofort sieht.

z.b.

 myBtn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//called wehn myButton is pressed
}
});

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Robbiani Renato
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

20.11.2018, 10:26:39 via Website

Ciao Pascal

Super Herzlichen Dank. So funktioniert es.

Gruss Renato

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

20.11.2018, 11:03:46 via Website

Hallo und wenn du es mit dem Interface machen willst dann in etwas so. ( "implements View.OnClickListener" )

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button bt1 = (Button) findViewById(R.id.button1);
    bt1.setOnClickListener(this);
    Button bt2 = (Button) findViewById(R.id.button2);
    bt1.setOnClickListener(this);

}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.button1:
            //code für Button 1
            break;
        case R.id.button2:
            // code für Button 2
            break;
    }
}

}

— geändert am 20.11.2018, 11:15:11

Hilfreich?
Pascal P.
Kommentieren