onClick()x2

  • Antworten:68
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 1.793

15.12.2013 11:41:27 via Website

Tom Com, bitte beschreibe genau, was du willst! Besteht der Fehler immer noch, dass die App abschmirt? Dann behebe diesen doch zuerst, bevor du dich weiteren Problemen widmest.

Die
1ImageView flyi = new ImageView(this);
steht in eineFlyanzeigen. Wie kann man das aber auch für die onClick() verwenden?
Warum willst du das tun? Weißt du überhaupt, was diese Zeile tut? Wahrscheinlich nicht. Sie erzeugt jediglich ein neues Object (vom Typ ImageView) im RAM des Handys. Warum willst du das in der onClick tun? Beschreibe ersteinmal dein Ziel.

Zudem ist es sehr unschön, deine Activity einfach neu zu starten, nur um das Spiel neuzustarten. FALSCH ist es aber auf jeden Fall, onPause() selber aufzurufen. Das macht das Android-OS von alleine und du solltest da nicht selber rumfuschen!!!

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

  • Forum-Beiträge: 201

15.12.2013 13:06:32 via Website

Eigentlich wollte ich, dass die Fly verschwinden sobald man auf sie drückt = onClick()
Zu der anderen Frage... Ich wollte wenn man auf den Pausebutton drückt, dass man in die pausenactivity wechselt und dann die Game pausiert (onPause()).
Die Activity startet stürzt bald aber wieder ab.

— geändert am 15.12.2013 13:10:30

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 1.793

15.12.2013 14:02:19 via App

ok, alles der Reihe nach:
Du willst, dass die "fly" verschwindet, wenn man sie drückt. Das ImageView soll also verschwinden. Dann setzte einfach bei jedem fly-ImageView den OnClickListener, in dem die aktuelle, berührte ImageView entfernt wird. Diese berührte ImageView ist der Parameter (View v) von der onClick()-Methode.
Mach das als erstes und kümmere dich dann um den Rest.

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

  • Forum-Beiträge: 359

16.12.2013 15:02:16 via Website

Hallo,
mir kommt es bei so fragen immer so vor, als würde nicht verstanden werden was ein Listener ist bzw. was dieser macht.

Dehalb:
Ein Listener ist allererst einmal ein Interface. (Das ist auch der Grund warum man kein Objekt eines Listeners erstellen kann)
Eine Klasse biete anhand eines Listener die Möglichkeit, diesem Informationen über das Interface zukommen zulassen.
Das beduetet:
Erster Schritt : Das Interface implementieren und ausprogrammieren.

1public class MeinClickListener implements OnClickListener{
2public void onClick(View v){
3....
4}
5
6}


Somit kann man dem View auch sagen welecher OnClickListener ausgeführt werden soll.
1view.setOnClickListener(new MeinClickListener());

Jetzt wird bei einem BTN Klick das ausgelöst, was in OnClick definiert ist.

@Tom Com :
Du solltest dir folgwende Fragen stellen.
Hast du Erfahrung mit OOP, Java, Datenstrukturen, Programm Strukturierung etc.
Wenn nicht wäre es angebracht sich diese Intensive anzueigenen bevor man an solch ein Projekt geht.
Gerade OOP und das Verständnis der Erbvorgäng hilft dir viel weiter um das ganze zu verstehen.

Gruß
Fabian
  • Forum-Beiträge: 201

20.12.2013 16:56:39 via Website

Was bedeutet das:
12-20 16:55:49.421: E/AndroidRuntime(18873): FATAL EXCEPTION: main
12-20 16:55:49.421: E/AndroidRuntime(18873): java.lang.IllegalStateException: Could not find a method (View) in the activity class at.tomcom.strangefly.GameActivity for onClick handler on view class android.widget.Button with id 'Pause'
12-20 16:55:49.421: E/AndroidRuntime(18873): at android.view.View$1.onClick(View.java:3775)
12-20 16:55:49.421: E/AndroidRuntime(18873): at android.view.View.performClick(View.java:4421)
12-20 16:55:49.421: E/AndroidRuntime(18873): at android.view.View$PerformClick.run(View.java:18190)
12-20 16:55:49.421: E/AndroidRuntime(18873): at android.os.Handler.handleCallback(Handler.java:725)
12-20 16:55:49.421: E/AndroidRuntime(18873): at android.os.Handler.dispatchMessage(Handler.java:92)
12-20 16:55:49.421: E/AndroidRuntime(18873): at android.os.Looper.loop(Looper.java:175)
12-20 16:55:49.421: E/AndroidRuntime(18873): at android.app.ActivityThread.main(ActivityThread.java:5279)
12-20 16:55:49.421: E/AndroidRuntime(18873): at java.lang.reflect.Method.invokeNative(Native Method)
12-20 16:55:49.421: E/AndroidRuntime(18873): at java.lang.reflect.Method.invoke(Method.java:511)
12-20 16:55:49.421: E/AndroidRuntime(18873): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
12-20 16:55:49.421: E/AndroidRuntime(18873): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
12-20 16:55:49.421: E/AndroidRuntime(18873): at dalvik.system.NativeStart.main(Native Method)
12-20 16:55:49.421: E/AndroidRuntime(18873): Caused by: java.lang.NoSuchMethodException: [class android.view.View]
12-20 16:55:49.421: E/AndroidRuntime(18873): at java.lang.Class.getConstructorOrMethod(Class.java:460)
12-20 16:55:49.421: E/AndroidRuntime(18873): at java.lang.Class.getMethod(Class.java:915)
12-20 16:55:49.421: E/AndroidRuntime(18873): at android.view.View$1.onClick(View.java:3768)
12-20 16:55:49.421: E/AndroidRuntime(18873): ... 11 more
Ich kapier einfach nicht was der Fehler sein soll

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 1.793

20.12.2013 18:47:14 via App

Tom Com
Could not find a method (View) in the activity class at.tomcom.strangefly.GameActivity for onClick handler on view class android.widget.Button with id 'Pause'
Ganz ehrlich? Das kann sogar Google Übersetzer übersetzen!
Hast du dir das Log mal ein mal angesehen??

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

  • Forum-Beiträge: 201

21.12.2013 12:54:20 via Website

Ja aber auch beim Deutschen versteh ich nur Bahnhof.
Könnt ihr bitte mal einen Blick auf die Methode, wo der Pause(Button) vorkommt, werfen:
1public void pause(){
2 handler.postDelayed(this,INTERVALL);
3 Button pause = (Button)findViewById(R.id.Pause);
4 final Dialog dialog = new Dialog(this, android.R.style.
5 Theme_Translucent_NoTitleBar_Fullscreen);
6 pause.setOnClickListener(new OnClickListener(){
7 @Override
8 public void onClick(View v){
9
10 dialog.setContentView(R.layout.pause);
11 Button fortsetzen = (Button)dialog.findViewById(R.id.Fortsetzen);
12 fortsetzen.setOnClickListener(new OnClickListener(){
13 @Override
14 public void onClick(View v){
15 dialog.dismiss();
16
17 }
18
19 });
20
21 dialog.show();
22 }
23 });
24 }

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

21.12.2013 18:22:11 via Website

Was meinst du mit onClick für denselben Button setzen. Bin erst ein anfänger
sorry

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

21.12.2013 18:42:30 via Website

Ich habs schon entdeckt habe jetzt den onClick vom Button entfernt. Da ich es mit button.setOnClickListener mache

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

21.12.2013 19:55:54 via Website

Wie kann man eine Activity pausieren? Hab schon ein Pausendialog erstellt der auch problemlos öffnet und schließt.

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

22.12.2013 13:44:54 via Website

Ich wollte ein Spiel entwickeln. Mit einen Pausenmenü. Die GameActivity soll da pausiert werden. Wie mach ich das am besten?

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 201

22.12.2013 19:12:19 via App

Und wie mach ich das am Besten?

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.213

22.12.2013 20:07:44 via App

impjor
Du musst schon selber in deiner Spiellogik schauen

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

  • Forum-Beiträge: 359

24.12.2013 10:32:09 via Website

Fabian Simon

@Tom Com :
Du solltest dir folgwende Fragen stellen.
Hast du Erfahrung mit OOP, Java, Datenstrukturen, Programm Strukturierung etc.
Wenn nicht wäre es angebracht sich diese Intensive anzueigenen bevor man an solch ein Projekt geht.
Gerade OOP und das Verständnis der Erbvorgäng hilft dir viel weiter um das ganze zu verstehen.
Ich wiederhole es gern nochmal.
Einfaches drauflos Programmieren ohne Log zu verstehen und die Grundlegende Arten des OOPs zu verstehen ist nicht sinnvoll!
Taste dich ran z.B.:
lerne erst Java und nach 2-3 Monaten lernen der Grundstrukturen kannst du das ganze zusammen mit Android noch machen ;)

Gruß
Fabian
  • Forum-Beiträge: 201

24.12.2013 14:10:42 via Website

Nur kurz wäre es möglich eine if für den onClickListener?
Also wenn er gedrückt wird, dann...
Wenn nicht (else), dann...

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!

  • Forum-Beiträge: 1.793

24.12.2013 15:38:20 via App

Das macht keinen Sinn.
Der OnClickListener wird nur ausgeführt, wenn er geklickt wird! Deshalb heißt er ja so.
Wenn du mittels if abfragen willst, ob der Button gedrückt ist, müsste du es ja immer wieder neu prüfen. Das ergibt keinen Sinn und würde nur Prozessor/Akku belasten.
LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

  • Forum-Beiträge: 201

19.02.2014 08:00:12 via Website

Ich weiß es ist viel Zeit vergangen. Aber wie macht das mit der Pause z.B. Temple Run, dass nachher die Zeit runtergezählt wird. Habe ja sowieso ein Buch, aber da steht das nicht drinnen

Liebe Grüße!!!!!!!!!!!!!!!!!!!!!!