[JAVA] J'ai créé une application Janken avec kotlin

introduction

Je suis un étudiant débutant avec 2 mois d'expérience java et 1 mois d'expérience kotlin. J'espère que cet article vous donnera quelques conseils pour des débutants similaires qui essaient de créer des applications à l'aide de kotlin.

L'environnement de développement est Android Studio 3.0.1.

Site de référence https://blog.xsota.com/2013/07/android.html blog xsota "Créons une application Android - Édition Janken"

Chaque nom d'identifiant est ・ Image de Goo: gu ・ Image Choki: cho ・ Par image: par ・ Goo ImageButton: gu ・ Choki ImageButton: choki ・ Par ImageButton: par ・ Ma main ImageView: playerHand ・ Main de l'adversaire ImageView: comHand -Result TextView: résultat Je fais

Code: kt

MainActivity.kt


package com.example.yusaku.jankenbuttonapp

import android.app.Activity
import android.os.Bundle
import android.view.View
import android.widget.ImageButton
import android.widget.ImageView
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*

class MainActivity : Activity(), View.OnClickListener {
    override fun onClick(v: View?) {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
    }


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

        val gu: ImageButton = findViewById(R.id.gu)
        val choki: ImageButton = findViewById(R.id.choki)
        val per: ImageButton = findViewById(R.id.per)

        gu.setOnClickListener(listener)
        choki.setOnClickListener(listener)
        per.setOnClickListener(listener)
    }


    val listener = object : View.OnClickListener {
        override fun onClick(v: View?) {

            var hands = IntArray(3)
            //Attribuez un fichier image à votre main
            hands[0] = R.drawable.gu
            hands[1] = R.drawable.cho
            hands[2] = R.drawable.per

            var playerHand: ImageView = findViewById(R.id.playerHand)
            var comHand: ImageView = findViewById(R.id.comHand)

            val random = Random()
            val n = random.nextInt(3)

            var hand = 0
            //0:gu 1:choki 2:per
            if (v == findViewById(R.id.gu)) {
                hand = 0
            } else if (v == findViewById(R.id.choki)) {
                hand = 1
            } else if (v == findViewById(R.id.per)) {
                hand = 2
            }
            playerHand.setImageResource(hands[hand])
            comHand.setImageResource(hands[n])
            val syouhai = hand - n + 3

            if (syouhai % 3 == 0) {
                result.setText("Aiko")
            } else if (syouhai % 3 == 1) {
                result.setText("Tu as perdu")
            } else if (syouhai % 3 == 2) {
                result.setText("Vous gagnez")
            }

        }
    }
}

Code: xml

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.yusaku.jankenbuttonapp.MainActivity">

    <TextView
        android:id="@+id/result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="@string/result_text"
        android:textColor="@android:color/black"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toTopOf="@+id/playerHand"
        app:layout_constraintEnd_toEndOf="@+id/playerHand"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/playerHand"
        app:layout_constraintTop_toBottomOf="@+id/comHand" />

    <ImageButton
        android:id="@+id/gu"
        android:layout_width="95dp"
        android:layout_height="83dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:foreground="@drawable/gu"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/choki"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/playerHand"
        app:srcCompat="@drawable/ic_launcher_foreground" />

    <ImageButton
        android:id="@+id/choki"
        android:layout_width="98dp"
        android:layout_height="97dp"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="8dp"
        android:foreground="@drawable/cho"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/per"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/gu"
        app:layout_constraintTop_toBottomOf="@+id/playerHand"
        app:srcCompat="@drawable/ic_launcher_background" />

    <ImageButton
        android:id="@+id/per"
        android:layout_width="95dp"
        android:layout_height="100dp"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="8dp"
        android:foreground="@drawable/per"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/choki"
        app:layout_constraintTop_toBottomOf="@+id/playerHand"
        app:srcCompat="@drawable/ic_launcher_background" />

    <ImageView
        android:id="@+id/comHand"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toTopOf="@+id/result"
        app:layout_constraintEnd_toEndOf="@+id/result"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/result"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/ic_launcher_background" />

    <ImageView
        android:id="@+id/playerHand"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toTopOf="@+id/choki"
        app:layout_constraintEnd_toEndOf="@+id/choki"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="@+id/choki"
        app:layout_constraintTop_toBottomOf="@+id/result"
        app:srcCompat="@drawable/ic_launcher_background" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/player_text"
        app:layout_constraintBottom_toTopOf="@+id/gu"
        app:layout_constraintEnd_toStartOf="@+id/playerHand"
        app:layout_constraintHorizontal_bias="0.555"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.79" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/com_text"
        app:layout_constraintBottom_toTopOf="@+id/per"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.48"
        app:layout_constraintStart_toEndOf="@+id/comHand"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.201" />

</android.support.constraint.ConstraintLayout>

Impressions

-L'application n'a pas démarré même si j'ai converti ce qui était écrit en java tel quel et l'erreur a disparu. Par conséquent, j'ai supprimé la déclaration avant fun sur Create, qui était un site de référence, et j'ai fait une déclaration dans chaque méthode, et cela a fonctionné. ・ Val listener = object: View.OnClickListener a également eu beaucoup de mal. J'ai trouvé le site suivant à la suite d'une recherche sans aller bien avec setOnClickListener (this). En mettant l'objet de déclaration:, il semble que la classe d'interface puisse être décrite comme une instance pour chaque implémentation. Pour plus d'informations https://dev.classmethod.jp/smartphone/android-kotlin-introduction-02/ ·personnellement override fun onClick(v: View?) { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } L'endroit est également inconnu. Cela s'est produit lorsque je l'ai laissé à la gestion des erreurs du studio Android. Manque d'étude.

・ La façon d'écrire le code n'est toujours pas optimale, j'aimerais donc trouver une meilleure façon. ・ Le suivant est http://seesaawiki.jp/genesix_android/d/%A4%B8%A4%E3%A4%F3%A4%B1%A4%F3%A5%B2%A1%BC%A5%E0%A4% F2% BA% EE% A4% EB Je voudrais essayer quelque chose d'un peu compliqué, y compris des tentatives, en référence à.

Recommended Posts

J'ai créé une application Janken avec kotlin
J'ai créé une application Janken avec Android
J'ai créé une application shopify @java
J'ai créé une interface graphique avec Swing
J'ai créé une application correspondante (application Android)
[Android] J'ai créé une application de podomètre.
J'ai créé une application de calculatrice sur Android
[Rails] J'ai créé une mini-application de calendrier simple avec des spécifications personnalisées.
04. J'ai fait un frontal avec SpringBoot + Thymeleaf
J'ai fait de l'art de la mosaïque avec des images Pokemon
J'ai créé un jeu Janken en Java (CLI)
J'ai créé une application de visualisation qui affiche le PDF
J'ai créé un robot LINE avec Rails + heroku
J'ai fait un portfolio avec Ruby On Rails
Créez une application de chat avec WebSocket (Tyrus) + libGDX + Kotlin
J'ai créé un schéma de verrouillage à l'aide de la touche de volume avec l'application Android. Édition fragmentée
J'ai créé un environnement de développement avec rails6 + docker + postgreSQL + Materialise.
[Rails] J'ai essayé de créer une mini application avec FullCalendar
Je veux pousser une application créée avec Rails 6 vers GitHub
J'ai créé un plug-in qui exécute jextract avec des tâches Gradle
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
J'ai créé un MOD qui appelle instantanément un véhicule avec Minecraft
Créer une application de minuterie avec de la boue
J'ai fait une simple fonction de recommandation.
J'ai créé un outil de génération package.xml.
J'ai créé une interface de ligne de commande avec WinMerge Plugin en utilisant JD-Core
J'ai récemment créé une application js dans le langage courant de Dart
[Ruby] J'ai créé un simple client Ping
J'ai créé un serveur écologique avec scala
J'ai essayé de jouer un peu avec BottomNavigationView ①
J'ai créé un plug-in pour IntelliJ IDEA
[Rails 5] Créer une nouvelle application avec Rails [Débutant]
J'ai créé un nouvel outil de déploiement Java
[LINE BOT] J'ai créé un Ramen BOT avec Java (Maven) + Heroku + Spring Boot (1)
J'ai créé un site qui résume les informations sur la restriction du sucre avec Vue.js
J'ai créé un programme de jugement des nombres premiers en Java
Créez une application de recherche simple avec Spring Boot
J'ai créé StringUtils.isBlank
J'ai créé une application par moi-même! (Application de gestion de la lecture)
Publiez l'application avec ruby on rails
Créer une application Kotlin à l'aide du conteneur OpenJDK Docker
J'ai fait un blackjack avec Ruby (j'ai essayé d'utiliser minitest)
J'ai créé une application Android pour le service MiRm
J'ai essayé de créer une application de clonage LINE
J'ai créé un conteneur Docker pour exécuter Maven
J'ai créé une bibliothèque d'extension Ruby en C
[Rails] J'ai créé une fonction de brouillon en utilisant enum
J'ai créé Code Pipeline avec AWS CDK.
Apprendre Java avec Progate → Je vais vous expliquer parce que j'ai moi-même créé un jeu de base
Un simple jeu de ciseaux-papier-pierre avec JavaFX et SceneBuilder
J'ai essayé de casser le bloc avec java (1)
J'ai créé une fonction pour enregistrer des images avec l'API dans Spring Framework. Partie 1 (édition API)
J'ai créé une image Docker pour la version japonaise de SDAPS