romworld

Python 08 - (Android)(Log.d, 버튼 클릭 이벤트(숫자증가, 홀짝게임)) 본문

Python

Python 08 - (Android)(Log.d, 버튼 클릭 이벤트(숫자증가, 홀짝게임))

inderrom 2022. 12. 28. 17:12

Log.d 를 이용하면 오류를 잡기 편해진다. ( 안드로이드의 디버깅)

 

사용형식은 

Log.d("Tag","원하는 글자")

 

이런 식으로 안에 문자열을 넣어주면 자동으로 tag, msg 가 생성된다.

일부로 tag와 msg를 작성하는 경우 오류가 난다.

 

 


버튼 클릭 이벤트 (1)

- 누를 때 마다 숫자 증가

 

 

<AndroidManifest.xml>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApp"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity2"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <meta-data
                android:name="android.app.lib_name"
                android:value="" />
        </activity>
    </application>

</manifest>

<activity_main2>

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".MainActivity">


    <LinearLayout
        android:layout_width="409dp"
        android:layout_height="729dp"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="1dp"
        tools:ignore="MissingConstraints">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/et"
                android:layout_width="1dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="100" />

            <Button
                android:id="@+id/btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="DOUBLE" />
        </LinearLayout>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

 

1. 첫번째 방법

<MainActivity2.java>

package kr.co.aiai.app;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);


        EditText et = findViewById(R.id.et);
        Button btn = findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String number = (String.valueOf(et.getText()));
                int num = Integer.parseInt(number);
                num *= 2;
                String num2 = String.valueOf(num);

                et.setText(num2);
            }
        });

    }
}

2.두번째 방법

package kr.co.aiai.app;

import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;


import androidx.appcompat.app.AppCompatActivity;

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);


        EditText et = findViewById(R.id.et);
        Button btn = findViewById(R.id.btn);
        btn.setOnClickListener(view -> {
            Log.d("rom","hello");

            String a = et.getText().toString();
            int aa = Integer.parseInt(a);
            aa *=2;
            et.setText(aa+"");
        });
    }
}

 

 

 


구구단 출력

 

<AndoroidManifest.xml>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApp"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity3"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <meta-data
                android:name="android.app.lib_name"
                android:value="" />
        </activity>
    </application>

</manifest>

<activity_main3.xml>

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".MainActivity">

    <LinearLayout
        android:layout_width="409dp"
        android:layout_height="729dp"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="1dp"
        tools:ignore="MissingConstraints">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="출력단수:" />

            <EditText
                android:id="@+id/et"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:inputType="number" />

        </LinearLayout>

        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="출력하기" />

        <TextView
            android:id="@+id/tvDisp"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:text="__" />

    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

<MainActivity3.java>

1. 첫번째 방법

package kr.co.aiai.app;

import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity3 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        EditText et = findViewById(R.id.et);
        Button btn = findViewById(R.id.btn);
        TextView tvDisp = findViewById(R.id.tvDisp);
        btn.setOnClickListener(view -> {
           String dan = et.getText().toString();
           int gugudan = Integer.parseInt(dan);

           String res = "";
           for(int i = 1; i <=9; i++){

               res += gugudan + " x " + i + " = " + gugudan*i +"\n";
           }
            tvDisp.setText(res);

        });
    }
}

2. 두번째방법 (for문)

package kr.co.aiai.app;

import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity3 extends AppCompatActivity {
    private TextView tvDisp;
    private EditText et;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        et = findViewById(R.id.et);
        Button btn = findViewById(R.id.btn);
        tvDisp = findViewById(R.id.tvDisp);
        btn.setOnClickListener(view -> {
          myclick();

        });
    }

    private void myclick() {
        String dan = et.getText().toString();
        int idan = Integer.parseInt(dan);

        String txt="";
        for(int i = 1; i<=9; i++){
            txt += idan + " x " + i + " = " + idan*i + "\n";
        }
        tvDisp.setText(txt);
    }
}

1. .myclick() 메서드를 만든다

2. for문을 돌린다 ~

 


홀짝게임

컴퓨터는 랜덤으로 홀짝이 나오고

출력하기 눌렀을 때 결과가 출력되게 ~

 

<AndroidManifest.xml>

android:name=".MainActivity4"

<activity_main4.xml>

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".MainActivity">

    <LinearLayout
        android:layout_width="409dp"
        android:layout_height="729dp"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="1dp"
        tools:ignore="MissingConstraints">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvMine"
                android:layout_width="40dp"
                android:layout_height="wrap_content"
                android:text="나:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/etMine"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvCom"
                android:layout_width="40dp"
                android:layout_height="wrap_content"
                android:text="컴:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/etCom"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" />

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tvResult"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="결과:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/etResult"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="text" />

        </LinearLayout>

        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="출력하기" />


    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

<MainActivity4.java>

1. 첫번째 방법(내가 푼 것)

package kr.co.aiai.app;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class MainActivity4 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);

      EditText etMine = findViewById(R.id.etMine);
      EditText etCom = findViewById(R.id.etCom);
      EditText etResult = findViewById(R.id.etResult);
      Button btn = findViewById(R.id.btn);
      btn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
             int random = (int)(Math.random()*10)+1;
              if (random > 5){
                  etCom.setText("홀");
              }else{
                  etCom.setText("짝");
              }

              if(etMine.getText().toString().equals(etCom.getText().toString())){
                  etResult.setText("승리");
              }else{
                  etResult.setText("패배");
              }

          }
      });
    }
}

2. 두번째 방법

package kr.co.aiai.app;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class MainActivity4 extends AppCompatActivity {
    EditText etMine;
    EditText etCom;
    EditText etResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);

       etMine = findViewById(R.id.etMine);
       etCom = findViewById(R.id.etCom);
       etResult = findViewById(R.id.etResult);
      Button btn = findViewById(R.id.btn);
      btn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              myclick();

          }
      });
    }

    private void myclick() {
        String mine = etMine.getText().toString();
        String com = "";
        String result = "";

        if(Math.random()>0.5){
            com= "홀";
        }else{
            com="짝";
        }
        if(mine.equals(com)){
            result="이김";
        }else{
            result="짐";
        }
        etCom.setText(com);
        etResult.setText(result);
    }
}

 

 

 

 

결과


 

 

 

'Python' 카테고리의 다른 글

Python10 - (Andoroid) Toast창 띄우기  (0) 2022.12.29
Python 09 - (Android)로또게임, 가위바위보, 별찍기  (0) 2022.12.28
Python 07 - Android (JAVA)  (1) 2022.12.27
Python 06 - JFrame(2) (JAVA)  (0) 2022.12.27
Python 05 - JFrame (JAVA)  (0) 2022.12.26
Comments