Jetzt ist es Zeit, Kotlin zu schreiben. Es ist lange her, aber ich werde mein Bestes geben.
Überprüfen Sie das Verfahren zum erneuten Konvertieren, einschließlich der Bedeutung der Überprüfung. Öffnen Sie zunächst diese MainActivity.java. Öffnen Sie dann Code und wählen Sie unten "Java-Datei in Kotlin-Datei konvertieren". Dann in kürzester Zeit 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.)
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. 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,
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.
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.
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)
}
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"
}
}
}
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
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.
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"
}
}
}
}
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