기록하는 코더

[Android Studio] 기본 예제 본문

JAVA

[Android Studio] 기본 예제

damda_di 2022. 12. 29. 15:54

Android Studio를 활용해보는 기본 예제

1. 버튼 누르면 글자 바꾸기

2. 버튼 누르면 숫자 2배로 바꾸기

3. 구구단 출력하기

4. 홀짝게임

5. 로또 번호 출력

6. 가위바위보

7. 별찍기

8. 다이얼 만들기

9. 입력 숫자 더하기

10. 입력 숫자 범위 내에 있는 배수의 합 구하기

11. 야구 게임

 

1. 버튼 누르면 글자 바꾸기

더보기

 

activity_main.xml 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

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

        <TextView
            android:id="@+id/tv"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="Good Morning" />

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

 

MainActivity.java

package kr.co.aiai.app;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    // AppCompatActivity : 서블릿과 같은 역할
    // onCreate는 doPost, doGet과 같음
    // R은 안드로이드에서 자동적으로 만들어줌

    // web.xml => manifests

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

        TextView tv = findViewById(R.id.tv);
        Button btn = findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("damdadi", "Hello");
                if(tv.getText() == "Good Morning"){
                    tv.setText("Good Evening");
                }else{
                    tv.setText("Good Morning");
                }
            }
        });
    }
}

 

결과

버튼 클릭 시 글자가 바뀐다.

 

2. 버튼 누르면 숫자 2배로 바꾸기

더보기

 

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="318dp"
        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="111dp"
                android:layout_height="wrap_content"
                android:text="100" />

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

 

MainActivity2.java

package kr.co.aiai.app;

import android.os.Bundle;

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 ->{

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

 

결과

버튼 클릭 시 텍스트 안에 있는 숫자가 2배 증가한다.

 

3. 구구단 출력하기

더보기

 

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="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

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

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

            <TextView
                android:id="@+id/tvv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="입력단수 : " />

            <EditText
                android:id="@+id/etn"
                android:layout_width="272dp"
                android:layout_height="wrap_content"
                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/tv"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:textSize="20sp" />

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

 

MainActivity3.java

package kr.co.aiai.app;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity3 extends AppCompatActivity {
    EditText etn;
    TextView tv;

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

        etn = findViewById(R.id.etn);
        Button btn = findViewById(R.id.btn);
        tv = findViewById(R.id.tv);
        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    public void myclick() {
        String code ="";
        String dan = etn.getText().toString();
        if( dan != null && !"".equals(dan)){
            int idan = Integer.parseInt(dan);

            for(int i = 1; i < 10; i++){
                code += idan + " * " + i + " = " + idan*i + "\n";
            }
            tv.setText(code);
        }else{
            Toast.makeText(this.getApplicationContext(), "입력단수를 입력해주세요!", Toast.LENGTH_SHORT).show();
        }
    }
}

 

결과

입력을 하지 않고 출력을 누르면 입력단수를 입력해달라는 문구가 뜨도록 설정했다.

 

숫자를 입력하면 정상적으로 출력된다.

 

 

4. 홀짝게임

더보기

 

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="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

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

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

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

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

            <ToggleButton
                android:id="@+id/tbtn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ToggleButton"
                android:textOff="홀수"
                android:textOn="짝수" />

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

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

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

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

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

            <EditText
                android:id="@+id/etResult"
                android:layout_width="150dp"
                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  

package kr.co.aiai.app;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ToggleButton;

import androidx.appcompat.app.AppCompatActivity;

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);
        ToggleButton tbtn = findViewById(R.id.tbtn);

        tbtn.setOnClickListener(view ->{
            myclick2();
        });
        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    private void myclick2() {
        if(etMine.getText().toString().equals("홀수") || etMine.getText().toString() == null){
            etMine.setText("짝수");
        }else{
            etMine.setText("홀수");
        }
    }

    public void myclick() {
        double num = (double) Math.random();

        if(num > 0.5){
            etCom.setText("홀수");
        }else{
            etCom.setText("짝수");
        }

        if( (etCom.getText().toString().equals("홀수") && etMine.getText().toString().equals("홀수"))
            || (etCom.getText().toString().equals("짝수") && etMine.getText().toString().equals("짝수")) ){
            etResult.setText("이김");
        }else{
            etResult.setText("짐");
        }
    }
}

 

결과

홀수, 짝수 토글 버튼을 누르면 자동으로 입력되도록 설정해두었다.

 

게임하기 버튼을 누르면 게임 결과를 볼 수 있다.



5. 로또 번호 출력

더보기

 

activity_main5.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/tv1"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />
            <TextView
                android:id="@+id/tv2"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />
            <TextView
                android:id="@+id/tv3"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />
            <TextView
                android:id="@+id/tv4"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />
            <TextView
                android:id="@+id/tv5"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />
            <TextView
                android:id="@+id/tv6"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:textSize="30dp"
                android:text="__" />

        </LinearLayout>

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

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

 

MainActivity5.java

방법 1

package kr.co.aiai.app;

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


import androidx.appcompat.app.AppCompatActivity;

public class MainActivity5 extends AppCompatActivity {
    TextView tv1, tv2, tv3, tv4 ,tv5, tv6;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main5);
        Button btn = findViewById(R.id.btn);

        tv1 = findViewById(R.id.tv1);
        tv2 = findViewById(R.id.tv2);
        tv3 = findViewById(R.id.tv3);
        tv4 = findViewById(R.id.tv4);
        tv5 = findViewById(R.id.tv5);
        tv6 = findViewById(R.id.tv6);

        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    public void myclick() {
    int[] arr={
            1,2,3,4,5,      6,7,8,9,10,
            11,12,13,14,15,16,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45
    };
    for(int i = 0; i < 1000; i++){
        int rnd = (int) (Math.random() * arr.length);
        int a = arr[rnd];
        int b = arr[0];
        arr[0] = a;
        arr[rnd]=b;
    }

    tv1.setText(arr[0]+"");
    tv2.setText(arr[1]+"");
    tv3.setText(arr[2]+"");
    tv4.setText(arr[3]+"");
    tv5.setText(arr[4]+"");
    tv6.setText(arr[5]+"");
    
    }
}

 

방법2.

package kr.co.aiai.app;

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


import androidx.appcompat.app.AppCompatActivity;

public class MainActivity5 extends AppCompatActivity {
    TextView tv1, tv2, tv3, tv4 ,tv5, tv6;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main5);
        Button btn = findViewById(R.id.btn);

        tv1 = findViewById(R.id.tv1);
        tv2 = findViewById(R.id.tv2);
        tv3 = findViewById(R.id.tv3);
        tv4 = findViewById(R.id.tv4);
        tv5 = findViewById(R.id.tv5);
        tv6 = findViewById(R.id.tv6);

        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    public void myclick() {
		Random rnd = new Random();
        int num = 0;
        // number로 된 45=개의 방 중에서
        ArrayList<Integer> number = new ArrayList<>();
        ArrayList<Integer> input = new ArrayList<>();
        for(int i= 0 ; i < 45; i++){
            number.add(i+1);
        }
        int cnt = 0;
        while(input.size() < 6){
            num = rnd.nextInt(45); // 랜덤 뽑기 숫자
            if (number.get(num) > 0) {
                input.add(cnt,number.get(num));
                number.set(num, 0);
                cnt++;
            }
        }

        tv1.setText(input.get(0) + "");
        tv2.setText(input.get(1) + "");
        tv3.setText(input.get(2) + "");
        tv4.setText(input.get(3) + "");
        tv5.setText(input.get(4) + "");
        tv6.setText(input.get(5) + "");

 

결과

출력하기를 누르면 중복되지 않은 숫자가 입력된다.

 

 

6. 가위바위보

더보기

 

activity_main6.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="80dp"
                android:layout_height="wrap_content"
                android:text="나:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/et_mine"
                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="80dp"
                android:layout_height="wrap_content"
                android:text="컴:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/et_com"
                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/et_result"
                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>

 

 

MainActivity6.java

package kr.co.aiai.app;

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

import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class MainActivity6 extends AppCompatActivity {
    EditText etMine, etCom;
    TextView etResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main6);
        Button btn = findViewById(R.id.btn);

        etMine = findViewById(R.id.et_mine);        // 사용자
        etCom = findViewById(R.id.et_com);          // 컴퓨터
        etResult = findViewById(R.id.et_result);    // 결과

        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    public void myclick() {
     Random rnd = new Random();
        int num = (int) rnd.nextInt(3)+1;
        String user = etMine.getText().toString();
        String com = "";

        if(num == 1){
            com = "가위";
        }
        if(num == 2){
            com = "바위";
        }
        if(num == 3){
            com = "보";
        }

        etCom.setText(com);
        if(user==com || user.equals(com)){
            etResult.setText("비김");
        }
        if( (user.equals("가위") && com.equals("보"))  ||
            (user.equals("바위") && com.equals("가위")) ||
            (user.equals("보") && com.equals("바위") )){
            etResult.setText("이김");
        }else{
            etResult.setText("짐");
        }
	}
}

결과

가위, 바위, 보 중에 하나를 입력하고 게임하기를 누르면 결과를 볼 수 있다.

 

 

7. 별찍기

더보기

 

activity_main7.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/tvFirst"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:text="첫번째별수:"
                android:textSize="30dp" />

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

        </LinearLayout>

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

            <TextView
                android:id="@+id/tvLast"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:text="마지막별수:"
                android:textSize="30dp" />

            <EditText
                android:id="@+id/etLast"
                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="match_parent"
            android:text="__" />


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

 

MainActivity7.java

package kr.co.aiai.app;

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

import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class MainActivity7 extends AppCompatActivity {
    EditText etFirst,etLast;
    TextView tvDisp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main7);
        Button btn = findViewById(R.id.btn);
        etFirst = findViewById(R.id.etFirst);
        etLast = findViewById(R.id.etLast);
        tvDisp = findViewById(R.id.tvDisp);

        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    public String strStar(int cnt){
        String ret = "";
        for(int i=0; i<cnt; i++){
            ret += "*";
        }
        ret += "\n";
        return ret;
    }


   public void myclick() {
        String a = etFirst.getText().toString();
        String b = etLast.getText().toString();

        int aa = Integer.parseInt(a);
        int bb = Integer.parseInt(b);

        String txt="";
        for(int i=aa; i <= bb; i++){
            txt += strStar(i);
        }
       tvDisp.setText(txt);
       }
   }

 

결과

 

입력한 숫자대로 별이 찍히는 걸 볼 수 있다.

 

8. 다이얼 만들기

더보기

 

activity_main8.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="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

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

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

            <EditText
                android:id="@+id/et"
                android:layout_width="280dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:inputType="text"
                android:textAlignment="textEnd" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn1"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="1" />
            <Button
                android:id="@+id/btn2"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="2" />
            <Button
                android:id="@+id/btn3"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="3" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn4"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="4" />
            <Button
                android:id="@+id/btn5"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="5" />
            <Button
                android:id="@+id/btn6"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="6" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn7"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="7" />
            <Button
                android:id="@+id/btn8"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="8" />
            <Button
                android:id="@+id/btn9"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="9" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btnBack"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="back" />
            <Button
                android:id="@+id/btn0"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="0" />
            <Button
                android:id="@+id/btnCall"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:text="Call" />
        </LinearLayout>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

 

MainActivity8.java

방법1.

package kr.co.aiai.app;

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity8 extends AppCompatActivity {
    EditText et;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main8);

        et = findViewById(R.id.et);
        Button btn1 = findViewById(R.id.btn1);
        Button btn2 = findViewById(R.id.btn2);
        Button btn3 = findViewById(R.id.btn3);
        Button btn4 = findViewById(R.id.btn4);
        Button btn5 = findViewById(R.id.btn5);

        Button btn6 = findViewById(R.id.btn6);
        Button btn7 = findViewById(R.id.btn7);
        Button btn8 = findViewById(R.id.btn8);
        Button btn9 = findViewById(R.id.btn9);
        Button btn0 = findViewById(R.id.btn0);
        Button btnCall = findViewById(R.id.btnCall);

        btn1.setOnClickListener(view -> { myclick(view); });
        btn2.setOnClickListener(view -> { myclick(view); });
        btn3.setOnClickListener(view -> { myclick(view); });
        btn4.setOnClickListener(view -> { myclick(view); });
        btn5.setOnClickListener(view -> { myclick(view); });

        btn6.setOnClickListener(view -> { myclick(view); });
        btn7.setOnClickListener(view -> { myclick(view); });
        btn8.setOnClickListener(view -> { myclick(view); });
        btn9.setOnClickListener(view -> { myclick(view); });
        btn0.setOnClickListener(view -> { myclick(view); });
        btnCall.setOnClickListener(view -> { mycall(); });


    }
    public void mycall(){
        String str_tel = et.getText().toString();
        Toast.makeText(this.getApplicationContext(),"calling "+str_tel, Toast.LENGTH_SHORT).show();

    }

    public void myclick(View v){
        Button imsi = (Button) v;
        String str_new = imsi.getText().toString();
        String str_old = et.getText().toString();
        et.setText(str_old+str_new);
    }

}

 

방법2. (내가 짰던 코드)

package kr.co.aiai.app;

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

import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;



public class MainActivity8 extends AppCompatActivity {
    Button btnCall,btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btnBack;
    String num ="";
    EditText et;

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

        btnCall = findViewById(R.id.btnCall);
        btnBack = findViewById(R.id.btnBack);

        btn0 = findViewById(R.id.btn0);
        btn1 = findViewById(R.id.btn1);
        btn2 = findViewById(R.id.btn2);
        btn3 = findViewById(R.id.btn3);
        btn4 = findViewById(R.id.btn4);
        btn5 = findViewById(R.id.btn5);
        btn6 = findViewById(R.id.btn6);
        btn7 = findViewById(R.id.btn7);
        btn8 = findViewById(R.id.btn8);
        btn9 = findViewById(R.id.btn9);

        EditText et = findViewById(R.id.et);

        btnBack.setOnClickListener(view -> {
            num = num.substring(0,num.length()-1);
            et.setText(num);
        });

        btn0.setOnClickListener(view -> {
            num += "0";
            et.setText(num);
            hyphen();
        });
        btn1.setOnClickListener(view -> {
            num += "1";
            et.setText(num);
            hyphen();
        });
        btn2.setOnClickListener(view -> {
            num += "2";
            et.setText(num);
            hyphen();
        });
        btn3.setOnClickListener(view -> {
            num += "3";
            et.setText(num);
            hyphen();
        });
        btn4.setOnClickListener(view -> {
            num += "4";
            et.setText(num);
            hyphen();
        });
        btn5.setOnClickListener(view -> {
            num += "5";
            et.setText(num);
            hyphen();
        });
        btn6.setOnClickListener(view -> {
            num += "6";
            et.setText(num);
            hyphen();
        });
        btn7.setOnClickListener(view -> {
            num += "7";
            et.setText(num);
            hyphen();
        });
        btn8.setOnClickListener(view -> {
            num += "8";
            et.setText(num);
            hyphen();
        });
        btn9.setOnClickListener(view -> {
            num += "9";
            et.setText(num);
            hyphen();
        });

        btnCall.setOnClickListener(view ->{
            myclick();
        });
    }
    public void myclick() {
        String msg = "";
        msg += num + "에게 전화를 겁니다.";
        Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
    }

    public void hyphen() {
        if (num.length() == 3) {
            num += '-';
        }
        if (num.length() == 8) {
            num += '-';
        }
        if(num.length() > 12){
            num = num.replace("-","");
        }


    }
}

 

결과

(방법2) call을 누르면 Toast창을 이용해 문구가 뜨도록 했다.

 

9. 입력 숫자 더하기

더보기

 

activity_main9.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="410dp"
        android:layout_height="730dp"
        android:orientation="vertical"
        tools:ignore="MissingConstraints"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="0dp">

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

            <EditText
                android:id="@+id/et1"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:text=""
                android:inputType="number" />

            <TextView
                android:id="@+id/tv"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:text="+"
                android:textAlignment="center" />


            <EditText
                android:id="@+id/et2"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:text=""
                android:inputType="number" />

            <Button
                android:id="@+id/btn"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:text="=" />


            <EditText
                android:id="@+id/et3"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:text="" />

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

 

MainActivity9.java

package kr.co.aiai.app;

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity9 extends AppCompatActivity {
    EditText et1, et2, et3;
    TextView tv;

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

        et1 = findViewById(R.id.et1);
        et2 = findViewById(R.id.et2);
        et3 = findViewById(R.id.et3);

        Button btn = findViewById(R.id.btn);

        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    public void myclick() {
        int num1 = Integer.parseInt(String.valueOf(et1.getText()));
        int num2 = Integer.parseInt(String.valueOf(et2.getText()));
        int sum = num1 + num2;

        et3.setText(sum+"");
    }
}

 

결과

숫자를 입력하고 '=' 버튼을 누르면 합이 나온다.

 

 

10. 입력 숫자 범위 내에 있는 배수의 합 구하기

더보기

 

activity_maina.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="410dp"
        android:layout_height="730dp"
        android:orientation="vertical"
        tools:ignore="MissingConstraints"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="0dp">

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

            <EditText
                android:id="@+id/et1"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text=""
                android:inputType="number" />

            <TextView
                android:id="@+id/tv1"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text="에서"
                android:textAlignment="center" />

            <EditText
                android:id="@+id/et2"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text=""
                android:inputType="number" />

            <TextView
                android:id="@+id/tv2"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text="까지"
                android:textAlignment="center" />

            <EditText
                android:id="@+id/et3"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text=""
                android:inputType="number" />


        </LinearLayout>

        <Button
            android:id="@+id/btn"
            android:layout_width="320dp"
            android:layout_height="wrap_content"
            android:text="배수합" />

        <EditText
            android:id="@+id/et4"
            android:layout_width="316dp"
            android:layout_height="wrap_content"
            android:text="" />
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

 

MainActivitya.java

package kr.co.aiai.app;

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivitya extends AppCompatActivity {
    EditText et1, et2, et3, et4;
    TextView tv1,tv2;

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

        et1 = findViewById(R.id.et1); // 에서
        et2 = findViewById(R.id.et2); // 까지
        et3 = findViewById(R.id.et3); // 의 배수합

        et4 = findViewById(R.id.et4); // 합

        tv1 = findViewById(R.id.tv1);
        tv2 = findViewById(R.id.tv2);


        Button btn = findViewById(R.id.btn);

        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    public void myclick() {
        String a = et1.getText().toString();
        String b = et2.getText().toString();
        String c = et3.getText().toString();

        int aa = Integer.parseInt(a);
        int bb = Integer.parseInt(b);
        int cc = Integer.parseInt(c);

        int sum = 0;
        for(int i = aa; i <= bb; i++){
            if(i % cc == 0){
                sum += i;
            }
        }
        et4.setText(sum + "");
    }
}

 

결과

입력 숫자의 배수의 합을 구할 수 있다.

 

11. 야구게임

더보기

 

activity_mainb.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="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity">

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

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

            <TextView
                android:id="@+id/tv1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="스트라이크:" />

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

        </LinearLayout>

        <Button
            android:id="@+id/btn"
            android:layout_width="320dp"
            android:layout_height="wrap_content"
            android:text="맞추기" />

        <TextView
            android:id="@+id/tvDisp"
            android:layout_width="314dp"
            android:layout_height="435dp"
            android:text="__"
            android:textSize="20sp" />

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

 

 

MainActivityb.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 android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class MainActivityb extends AppCompatActivity {
    EditText et;
    TextView tvDisp;
    String com = "";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mainb);

        et = findViewById(R.id.et);
        tvDisp = findViewById(R.id.tvDisp);
        Button btn = findViewById(R.id.btn);

        btn.setOnClickListener(view ->{
            myclick();
        });
        randomCom();
    }

    public void randomCom() {
        String[] arr = {"1","2","3","4","5","6","7","8","9"};

        for(int i=0; i<100;i++){
            int rnd = (int)(Math.random() * arr.length);
            String a = arr[rnd];
            String b = arr[0];
            arr[0] = a;
            arr[rnd] = b;
        }
        com = arr[0] + arr[1] + arr[2];
    }

    public void myclick() {
        String mine = et.getText().toString();
        int s = getStrike(com, mine);
        int b = getBall(com,mine);

        String str_old = tvDisp.getText().toString();
        String str_new = mine + "  " + s + "S" + b+"B"+"\n";
        tvDisp.setText(str_old + str_new);

        et.setText("");

        if(s == 3){
            Toast.makeText(this.getApplicationContext(),"You win \n" + mine,Toast.LENGTH_SHORT).show();
        }
    }

    public int getStrike(String com, String mine){
        int ret = 0;
        String c1 = com.substring(0,1);
        String c2 = com.substring(1,2);
        String c3 = com.substring(2,3);
        String m1 = mine.substring(0,1);
        String m2 = mine.substring(1,2);
        String m3 = mine.substring(2,3);

        if(c1.equals(m1)) ret++;
        if(c2.equals(m2)) ret++;
        if(c3.equals(m3)) ret++;
        return ret;
    }
    public int getBall(String com, String mine){
        int ret = 0;
        String c1 = com.substring(0,1);
        String c2 = com.substring(1,2);
        String c3 = com.substring(2,3);
        String m1 = mine.substring(0,1);
        String m2 = mine.substring(1,2);
        String m3 = mine.substring(2,3);

        if(c1.equals(m2) || c1.equals(m3)) ret++;
        if(c2.equals(m1) || c2.equals(m3)) ret++;
        if(c3.equals(m1) || c3.equals(m2)) ret++;
        return ret;
    }
}

 

방법2. (내가 짰던 코드)

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 android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class MainActivityb extends AppCompatActivity {
    EditText et;
    TextView tv1,tvDisp;
    int[] com;
    String comstr = "";
    String txt = "";

    int strike = 0;
    int ball = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mainb);
        com = new int[3];
        
        for(int i = 0; i < com.length; i++) {
            com[i] = (int)(Math.random() * 9 + 1);
            for(int j = 0; j < i; j++) {
                if(com[j] == com[i]) {
                    i--;
                    break;
                }
            }
        }
        comstr += com[0];
        comstr += com[1];
        comstr += com[2];

        Log.d("seyoon", comstr+"");

        Button btn = findViewById(R.id.btn);
        et = findViewById(R.id.et);
        tv1 = findViewById(R.id.tv1);
        tvDisp = findViewById(R.id.tvDisp);

        btn.setOnClickListener(view ->{
            myclick();
        });
    }

    public void gameSet() {
        String input =et.getText() + "";
        int[] user = new int[3];
        strike = 0;
        ball = 0;

        user[0] = Integer.parseInt(input.substring(0,1) + "");
        user[1] = Integer.parseInt(input.substring(1,2) + "");
        user[2] = Integer.parseInt(input.substring(2,3) + "");

        String userStr = "";
        userStr += user[0];
        userStr += user[1];
        userStr += user[2];

        if( ( user == null) || user.equals("")){
            Toast.makeText(this.getApplicationContext(), "숫자를 입력해주세요!", Toast.LENGTH_SHORT).show();
        }else{
            if(com[0] == user[0]) strike ++;
            if(com[1] == user[1]) strike ++;
            if(com[2] == user[2]) strike ++;

            if(com[0] == user[1] || com[0] == user[2]) ball++;
            if(com[1] == user[0] || com[1] == user[2]) ball++;
            if(com[2] == user[0] || com[2] == user[1]) ball++;

            if(strike == 3){
                txt = "Congratulation! \n";
                txt += "정답 : " + comstr;
                tvDisp.setText(txt);
            }else{
                txt += userStr + " - " + strike + "S" + ball + "B \n";
                tvDisp.setText(txt);
            }
        }
    }
    public void myclick() {
        gameSet();
        et.setText("");
    }
    public int makeRandom(){
        Random rnd = new Random();
        int num = rnd.nextInt(9)+1;
        return num;
    }
}

 결과 

입력한 숫자가 기록에 남는다.

 

정답을 맞추면 Toast를 통해 알려준다.