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

반응형

이제는 다음을 클릭했을 때, 변하는 모습을 넣어보겠습니다.

지금까지 했던 것은 어플의 끝입니다. 그러니까 다음을 눌러도 전혀 변화가 없었던 것이죠.

무슨 키도 눌리지도 않고, 멈춰버려!

 

그러면 안 되겠죠? 한번 할 때마다, 어플을 다시 킬 수는 없잖아요?

귀찮은 거 안 하겠죠.

그러니까 이제 저희는 다시 초기 상태로 되돌리는 것에 대해서 알아야하는 것이죠.

그러니까 어제는 스테이지로 변하고, 정리하는 것에 초점을 두었으니, 이어서 생각하시면 됩니다.

 

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

 

어제 마지막 부분을 봅시다.

else if(stage == 3) {
    timerTask?.cancel()
    val point = (abs(sec-num).toFloat())/100
    abc_2.text = point.toString()
    btn.text = "다음"
}

이런 식으로 스테이지 3에서, 버튼에 다음이 표시되게 만들었잖아요?

이 것은 스테이지 0과 같다고 생각하시면 됩니다.

 

왜? 다음에 스테이지 1로 넘어가야 하잖아요?

stage ++

이 것을 위에 넣었기 때문에, 스테이지 0으로 해야 다음이 스테이지 1로 넘어갑니다.

그래서 stage = 0을 넣어봅시다.

 

이후에 else if (stage == 1) 이 것을 넣어서, 초기 상태로 돌아간다고 넣으면 됩니다.

이후에 main()을 넣어주면 되겠죠?

간단하게 됩니다.

 

자, 결론을 보자면 이렇게 됩니다.

class MainActivity() : AppCompatActivity() {
    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_random)
        val abc_1: TextView = findViewById(R.id.text_time)
        val abc_2: TextView = findViewById(R.id.text_point)
        val btn: Button = findViewById(R.id.btn_main)

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

        abc.text = ((num.toFloat()) / 100).toString()
        btn.text = "시작"

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

            } else if (stage == 3) {
                timerTask?.cancel()
                val point = (abs(sec - num).toFloat()) / 100
                abc_2.text = point.toString()
                btn.text = "다음"
                stage = 0
            } else if (stage == 1) {
                main()
            }
        }
    }

스테이지 3을 stage 0으로 만들었고, else if를 이용해서, 스테이지 1로 돌아가고, 다시 맨 위에 있던 메인과 같은 것을 똑같이 불러왔습니다.

 

그럼 실행해보겠습니다.

스테이지 1상태입니다.

이제, 시작을 눌러보겠습니다.

스테이지 2상태입니다.

이제 정지를 눌러보겠습니다.

스테이지 3상태입니다.

 

이제 다음을 눌러서, 초기 스테이지1 상태로 돌아가보겠습니다.

짜잔! 완성입니다.

다시 스테이지 1상태로 돌아왔습니다.

이렇게 무한대로 반복되는, 어플이 완성 되었습니다!

 

 

어플만들기 stage 개념 도입. 중간정리 (앱#15)

 

어플만들기 stage 개념 도입. 중간정리 (앱#15)

어제까지 안드로이드 코틀린 스톱워치에서 랜덤 한 숫자를 만들었고, 그 숫자르 맞추기 위해서, 제가 시간을 시작, 정지할 수 있는 기능을 만들었습니다. 그리고 그 아래는 랜덤 한 숫자에서, 내

lucky1004.com

안드로이드 스탑워치 숫자에서 내가 멈춘 숫자 빼기(앱#14)

 

안드로이드 스탑워치 숫자에서 내가 멈춘 숫자 빼기(앱#14)

어제는 숫자가 자동으로 랜덤하게 생성되고, 그 아래 숫자는 스탑워치 처럼 시간이 흘러가고, 멈추게 하는 기능 까지 만들어보았습니다. 그럼 오늘은 랜덤한 시간에, 내가 멈췄던 시간을 뺀 텍

lucky1004.com

안드로이드 코틀린 숫자 게임 만들기(앱만들기#13)

 

안드로이드 코틀린 숫자 게임 만들기(앱만들기#13)

이제는 지금까지 해봤던 것들을 모아서, 게임을 만들어보겠습니다. 정해진 규칙을 다음과 같습니다. 조금 더 완성작품에 가까워지네요. 숫자가 랜덤 하게 정해져 있다. 시작을 누르면 타이머가

lucky1004.com

 

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