안드로이드 스튜디어 스탑워치 로직 완성!!

반응형

어제 블라인드 ON, OFF까지 배웠습니다.

그러면 이제 또 어떤 기능을 넣어볼까요? 어떤 기능을 넣어야 좋을까요?

음.. 뒤로 가기를 넣어보면 어떻까요?

 

참가자를 잘못 선정해서, 원래는 2명이면 될 것을 3명이 하게 되었습니다.

이때 뒤로 가기가 있어서, 처음으로 돌아가면 좋겠죠?

처음으로 돌아가는 것에 대해서 만들어보겠습니다.

 

이제는 충분히 혼자서도 만들 수 있을 것 같지만, 그래도 끝까지 같이 해봅시다.

 

메인에서 만져줘야겠죠?

버튼을 만들어줍시다. id는 btn_back으로 했고, 화면을 이런 식으로 만져주었습니다.

이 것을 메인 함수에다가 넣어줍시다.

val btn_back: Button = findViewById(R.id.btn_back)

버튼을 만들었고..

이 버튼을 클릭하면 어떻게 하는 게 좋을까요?

그냥 스타트 함수로 시작하면 되겠죠?

btn.setOnClickListener {
    start()
}

 

이 것을 넣어보겠습니다.

또한 기록을 지우고, a=1로 만드는 것을 다시 만들어주겠습니다.

아래 end에 있는 내용을 그대로 해보겠습니다.

 

btn_back.setOnClickListener {
    point_list.clear()
    a = 1
    p_num = 3
    start()
}

자 봐볼까요?

이런식으로 end 끝에 있는 것을 가지고 왔습니다.

 

이렇게 뒤로가기를 누르니까, 뒤로 갑니다. 아주 좋아요.

이제 기본적인 어플 만들기에 대해서 완성이 되어가네요. 마무리가 되어갑니다.

한번 처음부터 쭉 내용을 작성해볼게요.


import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import java.lang.Math.abs
import java.util.*

class MainActivity() : AppCompatActivity() {
    var p_num = 3
    var a = 1
    val point_list = mutableListOf<Float>()
    var isBlind = false


    fun start(){
        setContentView(R.layout.activity_start)
        val abc: TextView = findViewById(R.id.text_pnum)
        val btn_minus: Button = findViewById(R.id.btn_minus)
        val btn_plus: Button = findViewById(R.id.btn_plus)
        val btn_start: Button = findViewById(R.id.btn_back)
        val btn_blind: Button = findViewById(R.id.btn_blind)

        btn_blind.setOnClickListener {
            isBlind = !isBlind
            if (isBlind == true) {
                btn_blind.text = "Blind 모드 ON"
            } else {
                btn_blind.text = "Blind 모드 OFF"
            }
        }

        abc.text = p_num.toString()


        btn_minus.setOnClickListener{
            p_num --
            if (p_num == 0) {
                p_num = 1
            }
            abc.text = p_num.toString()
        }
        btn_plus.setOnClickListener{
            p_num ++
            if (p_num == 4)
            { p_num = 3}
            abc.text = p_num.toString()
        }
        btn_start.setOnClickListener{
            main()
        }
    }





    fun main() {
        setContentView(R.layout.activity_main)

        var timerTask: Timer? = null
        var stage = 1
        var sec: Int = 0

        val abc: TextView = findViewById(R.id.text_pnum)
        val abc_1: TextView = findViewById(R.id.text_time)
        val abc_2: TextView = findViewById(R.id.text_point)
        val abc_3: TextView = findViewById(R.id.text_people)
        val btn: Button = findViewById(R.id.btn_start2)
        val btn_back: Button = findViewById(R.id.btn_back)

        val random = Random()
        val num = random.nextInt(1001)

        abc.text = ((num.toFloat()) / 100).toString()
        btn.text = "시작"
        abc_3.text = "참가자 $a"

        btn_back.setOnClickListener {
            point_list.clear()
            a = 1
            p_num = 3
            start()
        }


        btn.setOnClickListener {
            stage++
            if (stage == 2) {
                timerTask = kotlin.concurrent.timer(period = 10) {
                    sec++
                    runOnUiThread {
                        if (isBlind == false) {
                            abc_1.text = (sec.toFloat() / 100).toString()
                        } else if (isBlind == true && stage == 2) {
                            abc_1.text = "???"
                        }
                    }
                }
                btn.text = "정지"

            } else if (stage == 3) {
                abc_1.text = (sec.toFloat() / 100). toString()

                timerTask?.cancel()
                val point = (abs(sec-num).toFloat())/100
                point_list.add(point)

                abc_2.text = point.toString()
                btn.text = "다음"
                stage = 0

            } else if (stage == 1) {
                if (a < p_num) {
                    a++
                    main()
                } else {
                    end()
                }
            }
        }
    }
            fun end() {
                setContentView(R.layout.activity_end)
                val text_end2: TextView = findViewById(R.id.text_end2)
                val text_end3: TextView = findViewById(R.id.text_end3)
                val btn_end1: Button = findViewById(R.id.btn_end1)

                text_end3.text = (point_list.maxOrNull()).toString()
                var index_last = point_list.indexOf(point_list.maxOrNull())
                text_end2.text = "참가자" + (index_last+1).toString()

                btn_end1.setOnClickListener(){
                    point_list.clear()
                    a = 1
                    p_num = 3
                    start()
                }
            }








    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        start()
     }}

import까지 넣었습니다.

이렇게 완성이 되었네요. 정말 길고 긴 대 장정이었던 것 같습니다.

하나씩 하면서 배우니까, 이제 좀 눈에 익지 않나요?

 

이제 내일부터는 꾸미기에 대해서 좀 해보겠습니다.

안드로이드 스튜디어 스톱워치 로직 완성!! 이었습니다.

 

여러 단계가 있었지만, 한 번씩 확인해봐요!

안드로이드 스튜디오 어플에 블라인드 넣기(앱#21)

 

안드로이드 스튜디오 어플에 블라인드 넣기(앱#21)

안드로이드 스튜디오 어플에 블라인드 넣기입니다. 어제에 이어서 하겠습니다. 어제는 stage 2까지 블라인드를 쳤습니다. 그런데 문제가 생겼어요. stage 3에서는 숫자가 보여야 하는데, 이어서 블

lucky1004.com

android studio설치 다운로드하기 안드로이드 앱 만들기#1

 

android studio설치 다운로드하기 안드로이드 앱 만들기#1

안드로이드 스튜디오 설치 다운로드하기 안드로이드 앱 만들기#1입니다. 오늘부터 코딩에 대해서 좀 배워보려고 합니다. 코딩에서 어떤 것을 먼저해볼까요? 그래도 저희가 가장 원하고, 그리는

lucky1004.com

안드로이드 스튜디오 앱 초기 상태로 되돌리기(#앱 16)

 

안드로이드 스튜디오 앱 초기상태로 되돌리기(#앱16)

이제는 다음을 클릭했을 때, 변하는 모습을 넣어보겠습니다. 지금까지 했던 것은 어플의 끝입니다. 그러니까 다음을 눌러도 전혀 변화가 없었던 것이죠. 무슨 키도 눌리지도 않고, 멈춰버려! 그

lucky1004.com

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유