[JAVA] Einführung in Kotlin für iOS-Entwickler lin ー Kotlin-Erstellung

Jetzt ist es Zeit, Kotlin zu schreiben. Es ist lange her, aber ich werde mein Bestes geben.

Konvertieren Sie zuerst Java in Kotlin

Überprüfen Sie das Verfahren zum erneuten Konvertieren, einschließlich der Bedeutung der Überprüfung. Screenshot 2017-03-17 12.07.03.png Öffnen Sie zunächst diese MainActivity.java. Öffnen Sie dann Code und wählen Sie unten "Java-Datei in Kotlin-Datei konvertieren". スクリーンショット 2017-03-17 12.24.59.png Dann in kürzester Zeit スクリーンショット 2017-03-17 12.07.52.png Es wird in Kotlin umgeschrieben.

(* Es ist eine praktische Funktion, aber nicht sehr zuverlässig. Daher ist es sicherer zu erkennen, dass sie mit der Genauigkeit der automatischen Übersetzung von Go ○ gle neu geschrieben wird. Einige Codezeilen sind ein Problem. Ich glaube nicht, aber wenn es mehr als ein paar Dutzend Zeilen gibt, wird es verschiedene Verdächtigungen geben.)

importieren und "alt + enter"

Jetzt lass es uns schreiben. Verbinden Sie zunächst die Teile der XML-Datei, die zuletzt erstellt wurden, mit kotlin by id. (Kurz gesagt, schließen wir uns an die Steckdose an.) Als Schreibweise

IdConnect.kt


val [Name] = findViewById(R.id.[ID in XML registriert]) as [Teilname]

ist. (Du brauchst nicht [] selbst) Schreiben wir also speziell eine displayTextView.

MainActivity.kt


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

Wenn Sie bisher schreiben, sollte ein Fehler in Ihrem Code angezeigt werden. スクリーンショット 2017-03-17 12.08.39.png Es bedeutet: "Was ist android.widget.TextView? Lassen Sie mich Ihnen vorstellen."

Ich glaube nicht, dass ich beim Schreiben in Xcode eine große Chance hatte, auf einen solchen Fehler zu stoßen. Denn im Fall von iOS ist "Import UI Kit" fast vollständig gelöst. Im Fall von Android wird jedoch jederzeit das in der Aktivitätsdatei verwendete importiert, sodass es ärgerlich ist, das Teil jedes Mal importieren zu müssen, wenn ein neues Teil hinzugefügt wird.

Importieren Sie also die Textansicht, um zu beheben, was gerade wütend ist. Schauen Sie sich jetzt das vorherige Bild an. Sie werden angewiesen, mit der Nachricht "Alt + Enter" zu drücken. Wenn ich es drücke, スクリーンショット 2017-03-20 13.00.58.png

Was für ein automatischer Import. (Nun, ich denke, es wäre schön, wenn Sie es automatisch importieren könnten, wenn Sie den Code geschrieben haben, wenn Sie das könnten.)

Es ist zweckmäßig, sich daran zu erinnern, dass die hier ausgeführte Operation "alt + enter" eine Operation ist, die automatisch das optimale Ergebnis korrigiert, wenn ein Fehler auftritt.

Verbindung mit ID (Fortsetzung)

Lassen Sie uns weiterhin die anderen Tasten an die Steckdose anschließen (funktionieren wie).

MainActivity.kt



        override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
            val displayTextView = findViewById(R.id.displayTextView) as TextView
    //(Von hier hinzufügen)
            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
    //(Bisher)

Es mag ein bisschen lang erscheinen, aber ich kann nicht anders, als nur einen Taschenrechner zu bauen.

Variablen vorbereiten

MainActivity.kt


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

symbolType ist eine Aufzählung, die zum Unterscheiden der vier Regeln erstellt wurde, und eine Variable a zum Speichern des Variablensymbols und der ersten zu berechnenden Zahl.

Es ist ein schneller Ablauf, aber es ist, wie man eine Aufzählung schreibt.

enum.kt


    enum class [Name](val[値のName]:[Werttyp]) {
        [Muster 1](Wert),
        [Muster 2](Wert),
        [Muster 3](Wert)
    }

Funktionsvorbereitung

Als nächstes erstellen wir eine Funktion, die mit Schaltflächen funktioniert. So schreiben Sie eine Funktion.

function.kt


fun [Name]([Argumentname]: [Argumenttyp],[Zweites Argument]: [Argumenttyp]...):[Rückgabetyp] {
[Beschreiben Sie den Verarbeitungsinhalt]
}

Schreiben wir es also außerhalb von {} von onCreate in MainActivity.kt. Die erste ist eine Funktion, die symbolType wechselt.

MainActivity.kt


        override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
       }
//(Ergänzung von hier)
   fun tapSymbolChange(text: String, symbol: symbolType): symbolType{
        a = Integer.parseInt(text)
        return symbol
    }
    

Ist es so Ich denke, ich kann es schöner schreiben, aber auf meiner Ebene geht es darum. Werfen wir einen zweiten Blick und als nächstes können Sie die Anzeige von displayTextView durch Drücken der Zifferntaste ändern.

MainActivity.kt


   fun tapSymbolChange(text: String, symbol: symbolType): symbolType{
        a = Integer.parseInt(text)
        return symbol
    }
        //(Ergänzung von hier)

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

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

Und schließlich ist es eine Funktion, das Berechnungsergebnis durch Drücken der Taste "=" anzuzeigen.

MainActivity.kt


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

        if (text == "0") {
            return  num.toString()
        } else {
            return  text + num.toString()
        }
    }
        //(Ergänzung von hier)
    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"
                }
        }
    }
    

Ich sagte zuletzt, das ist eine Lüge

Es tut mir leid, es ist ein leichter Witz. Sie müssen das Verhalten wirklich festlegen, wenn jede Schaltfläche am Ende getippt wird (der Teil wie addTarget in Xcode).

setOnClickListner.kt


[Teilname].setOnClickListner{[Inhalte verarbeiten]}

Es ist sehr einfach zu schreiben (im Vergleich zu 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) }


Es ist sehr einfach. Wenn dies Java ist ... (unten weggelassen

Es ist süß Kotlin

Das ist es. Lassen Sie es uns auf dem Emulator ausführen. Ich hoffe, dass dies die Anzahl der iOS-Entwickler erhöht, die sich an Kotlin wenden können.

Als Bonus

Da es eine große Sache ist, lassen Sie uns die gesamte MainActivity.kt verfügbar machen.

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"
                }
        }
    }
}

Bitte fügen Sie auch andere Artikel bei

Einführung in Kotlin für iOS-Entwickler ①-Umgebungskonstruktion Einführung in kotlin für iOS-Entwickler (2) -Projekterstellung Einführung in Kotlin für iOS-Entwickler (-About gradle Einführung in Kotlin für iOS-Entwickler ④-Type [Einführung in Kotlin für iOS-Entwickler ⑤-Practical XML] (http://qiita.com/parappa1002/items/867c5b30055312e74fdb) Einführung in Kotlin für iOS-Entwickler lin ー Kotlin-Erstellung

Recommended Posts

Einführung in Kotlin für iOS-Entwickler lin ー Kotlin-Erstellung
Einführung in Kotlin für iOS-Entwickler ②-Projekterstellung
Einführung in Kotlin für iOS-Entwickler ④-Typ
Einführung in Kotlin für iOS-Entwickler ⑤-Practical XML
Einführung in Kotlin für iOS-Entwickler ③-About gradle
Einführung in Kotlin für iOS-Entwickler ①-Umgebungskonstruktion
Kotlin-Klasse zum Senden an Java-Entwickler
Einführung in die Programmierung für Studenten: Einführung
Kotlin-Generika für Java-Entwickler
Kotlins Klasse Teil 2 zum Senden an Java-Entwickler
Einführung in Java zum ersten Mal # 2
Einführung in die Programmierung für Studenten: Variablen
Kotlin-Scope-Funktionen zum Senden an Java-Entwickler
Tipps zur Interoperabilität mit Kotlin zum Senden an Java-Entwickler
Benötigt für iOS 14? So legen Sie NSUserTrackingUsageDescription fest
Memo für die Migration von Java nach Kotlin
Einführung in Ruby 2
Kotlin-Funktionen und Lambdas zum Senden an Java-Entwickler
Einführung in Ratpack (Extra Edition) - Ratpack in Kotlin geschrieben
Einführung in web3j
Einführung in Micronaut 1 ~ Einführung ~
Erste Schritte mit Kotlin zum Senden an Java-Entwickler
[Java] Einführung in Java
Einführung in die Migration
Einführung in Java
Einführung in Doma
Erste Schritte mit Groovy für problematische Java-Ingenieure
[Einführung in Java] Grundlagen der Java-Arithmetik (für Anfänger)
Von der Einführung des Geräts bis zur Erstellung der Benutzertabelle
Einführung in die Programmierung für Studenten (von Zeit zu Zeit aktualisiert)
[Trainieren! ] Einführung von JFrame (Erklärung bis zur Bildschirmerstellung)
Einführung in Java für Anfänger Grundkenntnisse der Java-Sprache ①
Einführung in die Programmierung für Studenten: Erstellen von Canvas
Wie man Kotlin zum ersten Mal studiert ~ Teil 2 ~
Wie man Kotlin zum ersten Mal studiert ~ Teil 1 ~
Einführung in JAR-Dateien
Einführung in Ratpack (8) -Session
Einführung in die Bitarithmetik
Einführung in Ratpack (6) --Promise
Einführung in Ratpack (9) - Thymeleaf
Einführung in PlayFramework 2.7 ① Übersicht
Einführung in das Android-Layout
Weg zur REPL (?) Schöpfung (3)
Einführung in Entwurfsmuster (Einführung)
Einführung in die praktische Programmierung
Einführung in den Befehl javadoc
Einführung in den Befehl jar
Einführung in Ratpack (2) -Architektur
Einführung in den Lambda-Stil
Einführung in den Java-Befehl
19 Entspricht der Objekterstellung
Weg zur REPL (?) Schöpfung (1)
Einführung in die Keycloak-Entwicklung
Einführung in den Befehl javac
Weg zur REPL (?) Schöpfung (2)
Eine Einführung in Funktionstypen für objektorientierte Programmierer in Elm
Einführung in die Programmierung für Studenten: Vorbereitung Installieren wir die Verarbeitung
Einführung in Batch-Dateien (für Anweisungen, Arrays, verzögerte Umgebungsvariablen)