Il est maintenant temps d'écrire Kotlin. Cela fait longtemps, mais je ferai de mon mieux.
Vérifiez à nouveau la procédure de conversion, y compris la signification de la révision. Tout d'abord, ouvrez ce fichier MainActivity.java. Ensuite, ouvrez Code et sélectionnez "Convertir le fichier Java en fichier Kotlin" en bas. Puis, en peu de temps 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.)
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. 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,
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.
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.
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)
}
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"
}
}
}
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 tout. Exécutons-le sur l'émulateur. J'espère que cela augmentera le nombre de développeurs iOS qui peuvent contacter kotlin.
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"
}
}
}
}
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