Na początku klasycznie import bibliotek i pakietów
package pl.net.turka.android.develop.przyklad_04;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
Definicja klasy Gra i tu ważny element implements OnClickListener - dzięki temu obsługą przycisków zajmie się metoda onClick
public class Gra extends Activity implements OnClickListener{Definicja stałych i zmiennych
Context context;Wyświetlenie poszczególnych elementów okna i powiązanie ich z OnClickListener, odczytanie przekazanego parametru - poziom trudności.
public static final String TRUDNOSC_KLUCZ =
"pl.net.turka.android.develop.przylkad_04.trudnosc" ;
public static final int TRUDNOSC_LATWY = 5;
public static final int TRUDNOSC_SREDNI = 10;
public static final int TRUDNOSC_TRUDNY = 100;
static final private int ALERT_DIALOG_KONIEC = 1;
private Button zgadnij;
private EditText numA;
private float trud;
private double wylos;
private int wylo;
int licznik=0;
float num1=0;
private int counter = 0;
private TextView tvCounter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
trud = getIntent().getIntExtra(TRUDNOSC_KLUCZ,
TRUDNOSC_LATWY);
context = getApplicationContext();
setContentView(R.layout.gra);
tvCounter = (TextView) findViewById(R.id.tvCounter);
zgadnij = (Button) findViewById(R.id.przyciskZgadnij);
zgadnij.setOnClickListener(this);
final TextView wynik =
(TextView) findViewById(R.id.textTrud);
Ustawienie i wylosowanie liczby do odgadnięcia
if (trud == 0 ) {wylos = Math.random()*5+1; wynik.setText("Łatwy 1-5");}
if (trud == 1 ) {wylos = Math.random()*10+1;wynik.setText("Średni 1-10"); }
if (trud == 2 ) {wylos = Math.random()*100+1;wynik.setText("Trudny 1-100"); }
wylo=(int)wylos;
Ustawienie wyświetlania upływu czasu
startCounting();
}
Głowna metoda obsługującą naciśnięcie przycisku zgadnij
public void onClick(View v) {
switch (v.getId()) {
case R.id.przyciskZgadnij:
licznik=licznik+1;
numA = (EditText)findViewById(R.id.poleWstaw);
if (!numA.getText().toString().equals(""))
{
num1 = Float.parseFloat(numA.getText().toString());
}
numA.setText("");
if (num1==wylo)
{
numA.setHint("Brawo");
Intent intencja = new Intent(context, Wygrana.class);
intencja.putExtra("licznik", Integer.toString(licznik));
intencja.putExtra("czas", Integer.toString(counter));
startActivity(intencja);
finish();
break;
}
if (num1<wylo)
{
Toast toast = Toast.makeText(context,"za mało",Toast.LENGTH_LONG);
toast.show();
numA.setHint("Liczba "+(int)num1+" za mała "+licznik+ " ");
}
if (num1>wylo)
{
Toast toast = Toast.makeText(context,"za dużo",Toast.LENGTH_LONG);
toast.show();
numA.setHint("Liczba "+(int)num1+" za duża "+licznik+ " ");
}
}
}
Ustawienie upływu czasu - co ile milisekund uruchomić metodę aktualizacji
private void startCounting() {Aktualizacja czasu
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
updateCounter();
}
};
timer.scheduleAtFixedRate(task, 0, 1000);
}
private void updateCounter() {
runOnUiThread(new Runnable() {
public void run() {
tvCounter.setText("Czas gry: " + counter + "s");
counter++;
}
});
}
}
Brak komentarzy:
Prześlij komentarz