ich arbeite gerade mit dem Android SDK, meine Frage bezieht sich jedoch nur auf den Java Background, daher stelle ich die Frage mal in diesem Forum =)
Kurz und Knapp, ich habe mehrere Buttons und möchte das die alle einem OnClickListener zugeordnet werden, hierzu habe ich folgenden Code programmiert:
Code:
final Button mainButton1 = (Button)findViewById(R.id.mainButton1);
final Button mainButton2 = (Button)findViewById(R.id.mainButton2);
final Button mainButton3 = (Button)findViewById(R.id.mainButton3);
OnClickListener onC = new OnClickListener()
{
public void onClick(View v)
{
Intent intent;
switch (v.getId())
{
case R.id.mainButton1: intent = new Intent(main.this, func1.class);
case R.id.mainButton2: intent = new Intent(main.this, func2.class);
case R.id.mainButton3: intent = new Intent(main.this, func3.class);
default: intent = new Intent (main.this, main.class);
}
startActivity(intent);
}
};
mainButton1.setOnClickListener(onC);
mainButton2.setOnClickListener(onC);
mainButton3.setOnClickListener(onC);
Leider springt das Programm aber bei jedem Button nur in den default Abschnitt meiner Switch Anweisung... was mache ich falsch?
Außerdem habe ich noch eine allgemeine Frage:
Folgendes Code Kontrukt von oben verstehe ich iwie nich ganz:
Code:
OnClickListener onC = new OnClickListener()
{
public void onClick(View v)
{
Intent intent;
switch (v.getId())
{
case R.id.mainButton1: intent = new Intent(main.this, func1.class);
case R.id.mainButton2: intent = new Intent(main.this, func2.class);
case R.id.mainButton3: intent = new Intent(main.this, func3.class);
default: intent = new Intent (main.this, main.class);
}
startActivity(intent);
}
};
Was passiert hier genau? Ich erzeuge ja ein neues Objekt "OnClickListener" und überschreibe dann iwie eine Methode darin oder wie? Die Syntax verwirrt mich grade sehr.
Zu dem switch-case:
Wenn eine Bedingung zutrifft arbeitet er auch alle folgenden Bedingungen bis zu einem break durch. Er macht also nicht nur default, sondern alle. Da er default aber als letztes macht steht da halt immer "new Intent (main.this, main.class);" drin.
Zu dem nächsten:
Das hast du schon richtig verstanden du erstellt den Listener und überschreibst die Methode "onClick".
Mfg
Guten Abend zusammen, ich habe grade mit der Android Programmierung begonnen, habe allerdings schon seit knapp einem Jahr Java geschrieben, jedoch verwirren mich momentan die Anweisungen "main.this", sowie "list1.class" ein wenig, wäre wunderbar wenn sie mir jemand anhand meines eigenen Programmes erklären könnte.
Vielen Dank
Java:
packagecom.example.second;importandroid.os.Bundle;importandroid.app.Activity;importandroid.content.Intent;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.TextView;publicclassMainActivityextendsActivityimplementsOnClickListener{publicButton btn;publicTextViewText;publicTextViewText2;publicButton btn2;@OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button);Text=(TextView)findViewById(R.id.text);Text2=(TextView)findViewById(R.id.text2);
btn2=(Button) findViewById (R.id.button2);
btn.setOnClickListener(this);
btn2.setOnClickListener(this);}@OverridepublicbooleanonCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);returntrue;}publicvoidersterButton(){Text.setText("Du hast den ersten Button gedrückt");}publicvoidzweiterButton(){Text2.setText("Du hast den zweiten Button gedrückt");}@OverridepublicvoidonClick(View v){Intent intent;switch(v.getId()){//case R.id.button: intent =new Intent(MainActivity.this,MainActivity.class); break;//case R.id.button2: intent =new Intent(MainActivity.this, MainActivity.class); break;default: intent =newIntent();}startActivity(intent);}}
Also das was als Kommentar dort steht, an dieser Stelle weiß ich nicht was ich dort schreiben müsste