Na het maken van deze app wordt van je verwacht dat je:
Bekijk onderstaand filmpje en maak de app.
Om van de ene activity naar de andere te gaan heb je een object van de klasse Intent nodig. De constructor van Intent accepteert twee parameters:
//ga naar TimerActivity Intent intent = new Intent(this, TimerActivity.class); startActivity(intent);
Soms wil je waardes meegeven aan een intent waar in de doel activity iets mee wordt gedaan. In de brain trainer wordt de score van de speler meegegeven zodat kan worden gechecked of er een nieuwe high score is. Hiervoor gebruiken we de methode putExtra. Deze methode accepteert twee parameters:
//ga naar MainActivity Intent intent = new Intent(this, MainActivity.class); //geef de variabele score (int) mee intent.putExtra("score", score); startActivity(intent);
In de klasse waar het intent naar toe wordt gestuurd kun je de waarde opvragen met de key die je hebt toegekend. Je kunt verschillende types opvragen met verschillende methoden. Hieronder een aantal veelgebruikte. Voor alle methodes zie klasse Intent
Als er geen waarde is met die key, dan geeft de methode een default value die je zelf kunt bepalen. In onderstaand voorbeeld geeft de methode 0 terug als er geen intent is of als er geen score is.
// vraag het intent op Intent intent = getIntent(); // vraag de meegestuurde integer waarde op int score = intent.getIntExtra("score", 0);
Met de klasse SharedPreferences kun je waardes opslaan in een bestand dat Android voor je bewaart. Je maakt een object van SharedPreferences met de methode getPreferences waarbij je aan moet geven of de gegevens alleen voor de eigen applicatie beschikbaar zijn of ook voor andere apps. Hiervoor kun je een constante van de Context klasse gebruiken. In de Brain Trainer willen we de high score bewaren. Om een waarde op te slaan heb je een object van de binnenklasse SharedPreferences.Editor nodig. Zie voorbeeld hieronder. Met de editor kun je verschillende gegevenstypen opslaan. Zie documentatie.
SharedPreferences prefs = this.getPreferences(Context.MODE_PRIVATE); //haal de high score (default 0) int highScore = prefs.getInt("highScore", 0); Intent intent = getIntent(); int score = intent.getIntExtra("score", 0); if (score > highScore) { highScore = score; //Bewaar de nieuwe high score SharedPreferences.Editor editor = prefs.edit(); editor.putInt("highScore", highScore); editor.commit(); }