onClick()x2

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

25.02.2014 17:37:34 via Website

Leider habe ich keine richtige Anleitung für das was ich suche gefunden:(
Irgendewie so if und dann wenn der Button gedrückt wird, sonst..
Bitte hilf du mir bei dem auf die Sprünge

— geändert am 25.02.2014 17:38:11

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

  • Forum-Beiträge: 1.793

25.02.2014 17:41:37 via Website

Sorry, du musst dich schon etwas mit Android beschäftigen...
So wie du dir das vorstellst wird das nie gehen. Soll dein Handy alle 5millisekunden prüfen, ob der Button gedrückt ist? Man verwendet einen Listener, der den Code erst dann ausführt, wenn der Knopf auch gedrückt wurde. Nix if.

LG

— geändert am 25.02.2014 17:41:56

Liebe Grüße impjor.

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

  • Forum-Beiträge: 201

25.02.2014 18:04:46 via Website

Bitte ich schicke mal den ganzen Code bitte sage mir wie ich am besten diee Pause mache. BITTE!
1package at.tomcom.strangefly;
2
3import java.util.Date;
4import java.util.Random;
5
6import android.app.Activity;
7import android.app.Dialog;
8import android.content.Intent;
9import android.media.MediaPlayer;
10import android.os.Bundle;
11import android.os.Handler;
12import android.view.Gravity;
13import android.view.View;
14import android.view.View.OnClickListener;
15import android.view.ViewGroup;
16import android.view.ViewGroup.LayoutParams;
17import android.view.animation.Animation;
18import android.view.animation.AnimationUtils;
19import android.widget.Button;
20import android.widget.FrameLayout;
21import android.widget.ImageView;
22import android.widget.TextView;
23
24public class GameActivity extends Activity implements Runnable{
25 private static final int ZEITSCHEIBEN = 600;
26 private static final int INTERVALL = 100;
27 private static final long HOECHSTALTER_MS = 2000;
28 private float massstab ;
29 private Random zufallsgenerator = new Random();
30 private int runde;
31 private int punkte;
32 private ViewGroup spielbereich;
33 private int gefangeneFly;
34 private int zeit;
35 private int fly;
36 private Handler handler = new Handler();
37 private static final String HELFER = "HELFER";
38 private MediaPlayer mp;
39 private Animation animationEinblenden;
40
41
42
43 @Override
44 public void onCreate(Bundle savedInstanceState) {
45 super.onCreate(savedInstanceState);
46 setContentView(R.layout.activity_game);
47 massstab = getResources().getDisplayMetrics().density;
48 spielbereich = (FrameLayout) findViewById(R.id.spielbereich);
49 spielStarten();
50 mp = MediaPlayer.create(this,R.raw.summen);
51 animationEinblenden = AnimationUtils.loadAnimation(this, R.anim.einblenden);
52 Button pause = (Button)findViewById(R.id.Pause);
53 pause.setOnClickListener(new OnClickListener(){
54 @Override
55 public void onClick(View v){
56 pause();
57 }
58 });
59 }
60
61
62
63
64
65
66 private void spielStarten() {
67 runde = 0;
68 punkte = 0;
69 starteRunde();
70 }
71 private void starteRunde(){
72 runde = runde +1;
73 fly = runde * 20;
74 gefangeneFly = 0;
75 zeit = ZEITSCHEIBEN;
76 bildschirmAktualisieren();
77 handler.postDelayed(this,INTERVALL);
78 }
79
80 private boolean pruefeRundenende(){
81 if (zeit == 0){
82 punkte += 1000;
83 starteRunde();
84 return true;
85 }
86 return false;
87 }
88
89 private boolean pruefeSpielende(){
90 if( zeit == 0 && gefangeneFly < fly){
91 gameOver();
92 return true;
93 }
94 return false;
95 }
96 private void gameOver(){
97 final Dialog d = new Dialog(this, android.R.style.
98 Theme_Translucent_NoTitleBar_Fullscreen);
99 d.setContentView(R.layout.gameover);
100 d.show();
101 Button over = (Button)d.findViewById(R.id.Overbutton);
102 over.setOnClickListener(new OnClickListener(){
103 @Override
104 public void onClick(View v){
105 onDestroy();
106 d.dismiss();
107 }
108
109 });
110
111 }
112 private void zeitHerunterzaehlen(){
113
114
115 zeit = zeit -1;
116 float zufallszahl = zufallsgenerator.nextFloat();
117 double wahrscheinlichkeit = fly * 1.5/ZEITSCHEIBEN;
118 if ( wahrscheinlichkeit > 1 ) {
119 eineFlyAnzeigen();
120 if ( zufallszahl < wahrscheinlichkeit - 1) {
121 eineFlyAnzeigen();
122 }
123 } else {
124 if ( zufallszahl < wahrscheinlichkeit) {
125 eineFlyAnzeigen();
126 }
127
128 }
129 flyVerschwinden();
130 bildschirmAktualisieren();
131 if(!pruefeSpielende()) {
132 if(!pruefeRundenende()){
133 handler.postDelayed(this, INTERVALL);
134 }
135
136 }
137
138 }
139 private void bildschirmAktualisieren(){
140
141 TextView tvPunkte = (TextView)findViewById(R.id.points);
142 tvPunkte.setText(Integer.toString(punkte));
143 TextView tvRunde = (TextView)findViewById(R.id.round);
144 tvRunde.setText(Integer.toString(runde));
145 TextView tvTreffer = (TextView)findViewById(R.id.hits);
146 tvTreffer.setText(Integer.toString(gefangeneFly));
147 TextView tvZeit = (TextView)findViewById(R.id.time);
148 tvZeit.setText(Integer.toString(zeit));
149 FrameLayout flTreffer = (FrameLayout)findViewById(R.id.bar_hits);
150 LayoutParams lpTreffer = flTreffer.getLayoutParams();
151 lpTreffer.width = Math.round( massstab * 300 *
152 Math.min( gefangeneFly,fly) / fly);
153 FrameLayout flZeit = (FrameLayout)findViewById(R.id.bar_time);
154 LayoutParams lpZeit = flZeit.getLayoutParams();
155 lpZeit.width = Math.round( massstab * zeit * 300 / ZEITSCHEIBEN);
156
157
158
159 }
160
161
162 private void eineFlyAnzeigen(){
163 final ImageView flyi = new ImageView(this);
164 flyi.setImageResource(R.drawable.ic_launcher);
165 flyi.setOnClickListener(new OnClickListener(){
166 @Override
167 public void onClick(View v){
168 if(flyi.getTag(R.id.tier) == HELFER) {
169 punkte -= 1000;
170 } else {
171 gefangeneFly++;
172 punkte +=10;
173 bildschirmAktualisieren();
174 spielbereich.removeView(flyi);
175 mp.pause();
176 }
177 }
178
179 });
180
181
182 int breite = spielbereich.getWidth();
183 int hoehe = spielbereich.getHeight();
184
185
186 flyi.setTag(R.id.geburtsdatum, new Date());
187 int fly_breite = (int)Math.round(massstab*50);
188 int fly_hoehe = (int)Math.round(massstab*50);
189 int links = zufallsgenerator.nextInt(breite-fly_breite);
190 int oben = zufallsgenerator.nextInt(hoehe-fly_hoehe);
191
192 FrameLayout.LayoutParams params =
193 new FrameLayout.LayoutParams(fly_breite,fly_hoehe);
194 params.leftMargin = links;
195 params.topMargin = oben;
196 params.gravity = Gravity.TOP + Gravity.LEFT;
197 if(zufallsgenerator.nextFloat() < 0.05) {
198 flyi.setImageResource(R.drawable.helfer);
199 flyi.setTag(R.id.tier,HELFER);
200 } else {
201 flyi.setImageResource(R.drawable.ic_launcher);
202 }
203 spielbereich.addView(flyi,params);
204 mp.seekTo(0);
205 mp.start();
206 }
207
208 private void flyVerschwinden() {
209 int nummer = 0;
210 while(nummer < spielbereich.getChildCount() ) {
211 ImageView flyi = (ImageView) spielbereich.getChildAt(nummer);
212 Date geburtsdatum = (Date) flyi.getTag(R.id.geburtsdatum);
213 geburtsdatum.getTime();
214 long alter = (new Date()).getTime() - geburtsdatum.getTime();
215 if(alter > HOECHSTALTER_MS ) {
216 spielbereich.removeView(flyi);
217 mp.pause();
218 }else{
219 nummer++;
220
221 }
222 }
223 }
224
225
226
227
228
229
230
231
232 public void pause(){
233
234 final Dialog dialog = new Dialog(this, android.R.style.
235 Theme_Translucent_NoTitleBar_Fullscreen);
236 dialog.setContentView(R.layout.pause);
237 dialog.show();
238 Button fortsetzen = (Button)dialog.findViewById(R.id.Fortsetzen);
239 fortsetzen.setOnClickListener(new OnClickListener(){
240 @Override
241 public void onClick(View v){
242 dialog.dismiss();
243
244 }
245
246 });
247
248
249 }
250
251
252
253
254
255 @Override
256 public void run(){
257 zeitHerunterzaehlen();
258 }
259 public void startActivity(){
260 startActivity(new Intent(this,GameActivity.class));
261 }
262
263 @Override
264 public void onResume(){
265 View v = findViewById(R.id.WurzelLayout);
266 v.startAnimation(animationEinblenden);
267 super.onResume();
268 }
269
270
271 @Override
272 public void onDestroy() {
273 mp.release();
274 startActivity(new Intent(this, StartActivity.class));
275 super.onDestroy();
276 }
277
278
279
280 }
Den Pausedialg habe ich schon in pause()
DANKE

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

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

25.02.2014 18:13:08 via Website

Ich glaube, dass du nicht genau weißt , was der ganze Code im Detail überhaupt macht.
Deswegen kannst du auch keine Pausefunktion implementieren.

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

  • Forum-Beiträge: 201

25.02.2014 18:18:25 via Website

Aber könnt ihr mir bitte vlt. eine Option meines Codes für eine Pause sagen????

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

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

25.02.2014 18:21:36 via Website

Das bringt dich aber nicht weiter, du weisst dann zwar du Lösung aber verstanden hast du es nicht.
Beim nächsten spiel geht es dann wieder von vorne los..

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

  • Forum-Beiträge: 201

25.02.2014 18:27:41 via Website

Könnt ihr mir dann nicht den Code erklären, den ihr mir sendet?

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

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

25.02.2014 18:40:00 via Website

Bisschen musst du schon selber machen.
Programmieren ist nicht so einfach.
Man muss sich mehrere Jahre damit intensiv beschäftigen.
Wenn man es dann kann und verstanden hat geht alles wesentlich einfacher.
Wenn du später richtig programmieren willst, würde ich dir empfehlen ein Java buch zu lesen, dann sich in Java einzuarbeiten und dann erst mit android anzufangen

PS: Wir haben hier auch nicht die Lust dazu uns deinen Code anzuschauen dann zu verstehen um dir deinen eigenen Code erklärem zu können.
Sorry aber Eigeninitiative ist angesagt.
Und nur um das klarzustellen Du sendest den Code und nicht wir

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

  • Forum-Beiträge: 201

25.02.2014 18:50:36 via Website

Ist okay! Wede mir wahrscheinlich diesesBuch kaufen. Habt ihr Erfahrungen mit diesem Buch gemacht?

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