[JAVA] Introduction à kotlin pour les développeurs iOS ⑥ ー création de kotlin

Il est maintenant temps d'écrire Kotlin. Cela fait longtemps, mais je ferai de mon mieux.

Convertissez d'abord Java en Kotlin

Vérifiez à nouveau la procédure de conversion, y compris la signification de la révision. Capture d'écran 2017-03-17 12.07.03.png Tout d'abord, ouvrez ce fichier MainActivity.java. Ensuite, ouvrez Code et sélectionnez "Convertir le fichier Java en fichier Kotlin" en bas. スクリーンショット 2017-03-17 12.24.59.png Puis, en peu de temps スクリーンショット 2017-03-17 12.07.52.png Il sera réécrit à Kotlin.

(* C'est une fonction pratique, mais elle n'est pas très fiable, il est donc plus sûr de reconnaître qu'elle peut être réécrite avec la précision de la traduction automatique de Go ○ gle. Quelques lignes de code posent problème. Je ne pense pas, mais quand il y a plus de quelques dizaines de lignes, il y aura divers soupçons.)

import et "alt + entrée"

Maintenant, écrivons-le. Tout d'abord, connectez les parties du fichier xml créé la dernière fois avec kotlin par id. (Bref, connectons-nous à la prise) Comme manière d'écrire

IdConnect.kt


val [Nom] = findViewById(R.id.[identifiant enregistré en xml]) as [Nom de la pièce]

est. (Vous n'avez pas besoin de [] lui-même) Alors, écrivons un displayTextView spécifiquement.

MainActivity.kt


val displayTextView = findViewById(R.id.displayTextView) as TextView

Si vous écrivez jusqu'à présent, vous devriez voir une erreur dans votre code. スクリーンショット 2017-03-17 12.08.39.png Cela signifie: "Qu'est-ce que android.widget.TextView? Laissez-moi vous présenter."

Je ne pense pas avoir eu beaucoup de chances de rencontrer une telle erreur lors de l'écriture dans Xcode. Parce que dans le cas d'iOS, "import UI Kit" est presque entièrement résolu. Cependant, dans le cas d'Android, celui utilisé dans le fichier d'activité est importé à tout moment, il est donc ennuyeux de devoir importer la pièce à chaque fois qu'une nouvelle pièce est ajoutée.

Alors, importez le TextView pour corriger ce qui est en colère en ce moment. Maintenant, jetez un œil à l'image précédente. Vous êtes invité à appuyer sur "alt + entrée" avec le message. Quand je le pousse, スクリーンショット 2017-03-20 13.00.58.png

Quelle importation automatique. (Eh bien, je pense que ce serait bien si vous pouviez l'importer automatiquement lorsque vous avez écrit le code si vous pouviez le faire)

Il convient de rappeler que l'opération "alt + entrée" effectuée ici est une opération qui corrige automatiquement le résultat optimal lorsqu'une erreur se produit.

Connexion avec Id (suite)

Continuons à connecter les autres boutons à la prise (fonctionne comme).

MainActivity.kt



        override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
            val displayTextView = findViewById(R.id.displayTextView) as TextView
    //(Ajouter d'ici)
            val no0Button = findViewById(R.id.no0Button) as Button
        val no1Button = findViewById(R.id.no1Button) as Button
        val no2Button = findViewById(R.id.no2Button) as Button
        val no3Button = findViewById(R.id.no3Button) as Button
        val no4Button = findViewById(R.id.no4Button) as Button
        val no5Button = findViewById(R.id.no5Button) as Button
        val no6Button = findViewById(R.id.no6Button) as Button
        val no7Button = findViewById(R.id.no7Button) as Button
        val no8Button = findViewById(R.id.no8Button) as Button
        val no9Button = findViewById(R.id.no9Button) as Button
        val additionButton = findViewById(R.id.additionButton) as Button
        val subtractButton = findViewById(R.id.subtractButton) as Button
        val multiplicationButton = findViewById(R.id.multiplicationButton) as Button
        val divisionButton = findViewById(R.id.divisionButton) as Button
        val clearButton = findViewById(R.id.clearButton) as Button
        val resultButton = findViewById(R.id.resultButton) as Button
    //(Jusque là)

Cela peut sembler un peu long, mais je ne peux pas m'empêcher de ne faire qu'une calculatrice.

Préparer les variables

MainActivity.kt


        var symbol = symbolType.additon
    var a: Int = 0
    enum class symbolType {
        additon,
        subtract,
        multipication,
        division
    }

symbolType est une énumération créée pour discriminer les quatre règles, et c'est une variable a pour stocker le symbole de variable et le premier nombre à calculer.

C'est un flux rapide, mais c'est comment écrire enum.

enum.kt


    enum class [Nom](val[値のNom]:[Typedevaleur]) {
        [Modèle 1](valeur),
        [Motif 2](valeur),
        [Modèle 3](valeur)
    }

Préparation des fonctions

Ensuite, nous allons créer une fonction qui fonctionne avec des boutons. Comment écrire une fonction est comme ça.

function.kt


fun [Nom]([Nom de l'argument]: [Type d'argument],[Deuxième argument]: [Type d'argument]...):[Type de retour] {
[Décrivez le contenu du traitement]
}

Alors écrivons-le en dehors du {} de onCreate dans MainActivity.kt. Le premier est une fonction qui change de symbolType.

MainActivity.kt


        override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
       }
//(Ajout d'ici)
   fun tapSymbolChange(text: String, symbol: symbolType): symbolType{
        a = Integer.parseInt(text)
        return symbol
    }
    

C'est comme ça? Je pense que je peux l'écrire plus joliment, mais à mon niveau, c'est à ce sujet. Jetons un second regard et voici la fonction pour changer l'affichage de displayTextView en appuyant sur le bouton numérique.

MainActivity.kt


   fun tapSymbolChange(text: String, symbol: symbolType): symbolType{
        a = Integer.parseInt(text)
        return symbol
    }
        //(Ajout d'ici)

    fun tapNumButton(text: String, num: Int) : String {

        if (text == "0") {
            return  num.toString()
        } else {
            return  text + num.toString()
        }
    }

Et enfin, c'est une fonction pour afficher le résultat du calcul en appuyant sur le bouton "=".

MainActivity.kt


   fun tapNumButton(text: String, num: Int) : String {

        if (text == "0") {
            return  num.toString()
        } else {
            return  text + num.toString()
        }
    }
        //(Ajout d'ici)
    fun calculation(a: Int, b: Int, symbol: symbolType): String{
        when(symbol){
            symbolType.additon -> return (a + b).toString()
            symbolType.subtract -> return (a - b).toString()
            symbolType.multipication -> return (a * b).toString()
            symbolType.division ->
                if (b != 0){
                    return (a / b).toString()
                }else {
                    return "error"
                }
        }
    }
    

J'ai dit le dernier, c'est un mensonge

Je suis désolé, c'est une blague légère. Vous devez vraiment définir le comportement lorsque chaque bouton est appuyé à la fin (la partie telle que addTarget dans Xcode)

setOnClickListner.kt


[Nom de la pièce].setOnClickListner{[Traitement du contenu]}

C'est très simple à écrire (par rapport à Java).

MainActivity.kt


    no0Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text = text, num = 0) }
        no1Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 1) }
        no2Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 2) }
        no3Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 3) }
        no4Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 4) }
        no5Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 5) }
        no6Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 6) }
        no7Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 7) }
        no8Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 8) }
        no9Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 9) }
        additionButton.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            symbol = tapSymbolChange(text, "add") }
        subtractButton.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            symbol = tapSymbolChange(text, "sub") }
        multiplicationButton.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            symbol = tapSymbolChange(text, "mult") }
        divisionButton.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            symbol = tapSymbolChange(text, "div") }
        clearButton.setOnClickListener { displayTextView.text = "0" }
        resultButton.setOnClickListener {
            val b = Integer.parseInt(displayTextView.text.toString())
            displayTextView.text = calculation(a, b = b, symbol = symbol) }


C'est très simple. S'il s'agit de Java ... (Omis ci-dessous

C'est mignon kotlin

C'est tout. Exécutons-le sur l'émulateur. J'espère que cela augmentera le nombre de développeurs iOS qui peuvent contacter kotlin.

En bonus

Comme c'est un gros problème, exposons l'ensemble de MainActivity.kt.

MainActivity.kt



import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView

class MainActivity : AppCompatActivity() {

    var symbol = symbolType.additon
    var a: Int = 0


    enum class symbolType {
        additon,
        subtract,
        multipication,
        division
    }


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val displayTextView = findViewById(R.id.displayTextView) as TextView
        val no0Button = findViewById(R.id.no0Button) as Button
        val no1Button = findViewById(R.id.no1Button) as Button
        val no2Button = findViewById(R.id.no2Button) as Button
        val no3Button = findViewById(R.id.no3Button) as Button
        val no4Button = findViewById(R.id.no4Button) as Button
        val no5Button = findViewById(R.id.no5Button) as Button
        val no6Button = findViewById(R.id.no6Button) as Button
        val no7Button = findViewById(R.id.no7Button) as Button
        val no8Button = findViewById(R.id.no8Button) as Button
        val no9Button = findViewById(R.id.no9Button) as Button
        val additionButton = findViewById(R.id.additionButton) as Button
        val subtractButton = findViewById(R.id.subtractButton) as Button
        val multiplicationButton = findViewById(R.id.multiplicationButton) as Button
        val divisionButton = findViewById(R.id.divisionButton) as Button
        val clearButton = findViewById(R.id.clearButton) as Button
        val resultButton = findViewById(R.id.resultButton) as Button





        no0Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text = text, num = 0) }
        no1Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 1) }
        no2Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 2) }
        no3Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 3) }
        no4Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 4) }
        no5Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 5) }
        no6Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 6) }
        no7Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 7) }
        no8Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 8) }
        no9Button.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            displayTextView.text = tapNumButton(text, 9) }
        additionButton.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            symbol = tapSymbolChange(text, symbolType.additon) }
        subtractButton.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            symbol = tapSymbolChange(text, symbolType.subtract) }
        multiplicationButton.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            symbol = tapSymbolChange(text, symbolType.multipication) }
        divisionButton.setOnClickListener {
            val text = displayTextView.text.toString()
            displayTextView.text = "0"
            symbol = tapSymbolChange(text, symbolType.division) }
        clearButton.setOnClickListener { displayTextView.text = "0" }
        resultButton.setOnClickListener {
            val b = Integer.parseInt(displayTextView.text.toString())
            displayTextView.text = calculation(a, b = b, symbol = symbol) }

    }


    fun tapSymbolChange(text: String, symbol: symbolType): symbolType{
        a = Integer.parseInt(text)
        return symbol
    }
    fun tapNumButton(text: String, num: Int) : String {

        if (text == "0") {
            return  num.toString()
        } else {
            return  text + num.toString()
        }
    }

    fun calculation(a: Int, b: Int, symbol: symbolType): String{
        when(symbol){
            symbolType.additon -> return (a + b).toString()
            symbolType.subtract -> return (a - b).toString()
            symbolType.multipication -> return (a * b).toString()
            symbolType.division ->
                if (b != 0){
                    return (a / b).toString()
                }else {
                    return "error"
                }
        }
    }
}

Veuillez également inclure d'autres articles

Introduction à kotlin pour les développeurs iOS ①-Construction de l'environnement Introduction à kotlin pour les développeurs iOS (2) -Création de projet Introduction à kotlin pour les développeurs iOS ③-À propos de gradle Introduction à kotlin pour les développeurs iOS ④-Type [Introduction à kotlin pour les développeurs iOS ⑤-XML pratique] (http://qiita.com/parappa1002/items/867c5b30055312e74fdb) Introduction à kotlin pour les développeurs iOS ⑥ ー création de kotlin

Recommended Posts

Introduction à kotlin pour les développeurs iOS ⑥ ー création de kotlin
Introduction à kotlin pour les développeurs iOS ②-Création de projet
Introduction à kotlin pour les développeurs iOS ④-type
Introduction à kotlin pour les développeurs iOS ⑤-XML pratique
Introduction à kotlin pour les développeurs iOS ③-À propos de gradle
Introduction à kotlin pour les développeurs iOS ①-Construction de l'environnement
Classe Kotlin à envoyer aux développeurs Java
Introduction à la programmation pour les étudiants du Collège: Introduction
Génériques Kotlin pour les développeurs Java
Kotlin's Class part.2 à envoyer aux développeurs Java
Introduction à Java pour la première fois # 2
Introduction à la programmation pour les étudiants du collégial: variables
Fonctions de portée Kotlin à envoyer aux développeurs Java
Conseils d'interopérabilité avec Kotlin à envoyer aux développeurs Java
Nécessaire pour iOS 14? Comment définir NSUserTrackingUsageDescription
Mémo pour la migration de Java vers Kotlin
Introduction à Ruby 2
Fonctions Kotlin et lambdas à envoyer aux développeurs Java
Introduction à Ratpack (Extra Edition) --Ratpack écrit en Kotlin
Introduction à web3j
Introduction à Micronaut 1 ~ Introduction ~
Premiers pas avec Kotlin à envoyer aux développeurs Java
[Java] Introduction à Java
Introduction à la migration
Introduction à Java
Introduction à Doma
Premiers pas avec Groovy pour les ingénieurs Java gênants
[Introduction à Java] Bases de l'arithmétique Java (pour les débutants)
De l'introduction de la conception à la création de la table des utilisateurs
Introduction à la programmation pour les étudiants du collégial (mise à jour de temps à autre)
[Entraine toi! ] Introduction de JFrame (expliquant jusqu'à la création d'écran)
Introduction à Java pour les débutants Connaissance de base du langage Java ①
Introduction à la programmation pour les étudiants du Collège: création de canevas
Comment étudier le kotlin pour la première fois ~ Partie 2 ~
Comment étudier le kotlin pour la première fois ~ Partie 1 ~
Introduction aux fichiers JAR
Introduction à Ratpack (8) - Session
Introduction à l'arithmétique des bits
Introduction à Ratpack (6) - Promesse
Introduction à Ratpack (9) --Thymeleaf
Introduction à PlayFramework 2.7 ① Présentation
Introduction à la mise en page Android
Road to REPL (?) Création (3)
Introduction aux modèles de conception (introduction)
Introduction à la programmation pratique
Introduction à la commande javadoc
Introduction à la commande jar
Introduction à Ratpack (2) -Architecture
Introduction au style lambda
Introduction à la commande java
19 Correspond à la création d'objet
Road to REPL (?) Création (1)
Introduction au développement de Keycloak
Introduction à la commande javac
Road to REPL (?) Création (2)
Une introduction aux types fonctionnels pour les programmeurs orientés objet dans Elm
Introduction à la programmation pour les étudiants du Collège: Préparation Installons le traitement
Introduction aux fichiers batch (pour les instructions, les tableaux, les variables d'environnement différées)