Post Detail

Post #112

Kotlin Notes

Interfaces

→ Bug perte de données en cas de rotation du device.

Android répond au basculement :

  • Tenter de sauvegarder l’Activity (Propres composants) → Appelle onSaveInstanceState

→ Bundle (key:value)

1override fun onCreate(savedInstanceState: Bundle?) --> ? (peut être null)
2    /// Pour récupérer des données il faut tester si Bundle null
  • Détruire l’activité
  • Reconstruire l’activité → onCreate()
1if (savedInstanceState != null) {
2    /// rechercher data
3    score = savedInstanceState.getInt(SCORE_KEY)
4}

Pour définir les Key → (static : unique, disponible sans instanciation)

Kotlin il faut intégrer un companion object (fond de la classe)

1companion object {
2    /// Key
3    private const val SCORE_KEY = "SCORE_KEY"
4    private const val TIME_LEFT_KEY = "TIME_LEFT_KEY"
5}

Sauvegarde des données

1override fun onSavedInstanceState(outState: Bundle) {
2    super.onSavedInstanceState(outState)
3
4    outState.putInt(SCORE_KEY, score)
5}

Gestionnaire d’événements

1    tapMeButton.setOnClickListener{ v -> 
2        /// v --> tapMeButton
3    }

Menu

  • Créer un dossier de res/menu/
  • Créer un fichier de ressources dans ce dossier

→ Editeur : Menu Item
→ Menu Item : id, title, icon, showAsAction - always

Redéfinir deux méthodes :

  • onCreateOptionsMenu()
  • onOptionsItemSelected() : répond aux clics sur les Menu Item

AlertDialog

(via le code)
1. Récupérer le Builder

val builder = AlertDialog.Builder(this)