본문 바로가기
개발노트/Kotlin

4주차 1일 안드로이드 입문

by 시계속세상은아직돌아가는중 2023. 7. 31.

1. 단축키

드디어 안드로이드 앱을 만드는 단계에 들어왔다.

오늘 배운 내용 중 가장 중요하다고 생각하는 단축키

 

F11 북마크 단축키. 해당 코드로 빠르게 서치해서 빠르게 이동 가능
crtl+클릭 클릭 메소드와 함수등으로 바로바로 이동할수 있다.
crtl+d 선택한 줄의 코드를 바로 복사해서 아래에 써준다.

 

2. 기본적인 프로젝트 실행

 

해당 화면은 오른쪽은 코드 왼쪽은 현재 디자인을 보여줄 수 있는 화면이다

스플릿 말고 디자인으로 들어가면 해당 요소들에 기능을 넣어줄 수 있다.

 

기능을 코틀린으로 구현해준다면 id를 불러올 수 있는데, id는

android:id="@+id/tv_number"

 

id/<ID를 호출할 때 사용하는 부분> 으로 이루어져 있으며

위 id부분의 'tv_number'부분을 수정하는 것으로 id를 수정할 수 있다.

 

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

        val tv_num = findViewById<TextView>(R.id.tv_number)
        val btn_dice = findViewById<Button>(R.id.btn_roll)

        btn_dice.setOnClickListener{

            val random = Random
            val num = random.nextInt(6) + 1 // +1을 하지 않으면 0부터 시작함.

            tv_num.text = num.toString()

            Log.d("MainActivity", "num = ${num.toString()}")

        }
    }
}

부분에서

val tv_num = findViewById<TextView>(R.id.tv_number)
val btn_dice = findViewById<Button>(R.id.btn_roll)

의 변수를 사용하여 각 id를 호출해서 textView와 button을 불러온다.

 

id를 불러온 덕분에 tv+num와 btn_dice를에 textview와 botton을 불러와 해당하는 부분에 기능을 추가해줄 수 있게 되었다.

 

 btn_dice.setOnClickListener{

            val random = Random
            val num = random.nextInt(6) + 1 // +1을 하지 않으면 0부터 시작함.

            tv_num.text = num.toString()

            Log.d("MainActivity", "num = ${num.toString()}")

        }

을 분석하자면

 

btn_dice 버튼이 클릭되었을 때 발생하는 이벤트다.

 

랜덤으로 숫자가 나오는 random변수를 선언하고

num이라는 인트 변수에 random.nextInt(6)으로 0~5까지의 숫자를 랜덤으로 반환할 수 있도록 하며, 뒤에 +1을 해줌으로써 1~6을 랜덤으로 반환하는 주사위 변수가 완성되었다.

 

tv_num.text = num.toString()

를 사용해 해당 이벤트가 발생할 때 num이 문자열로 반환되어 text로 출력될 수 있다.

 

오늘 푼 문제

https://clockstillticktockticktock.tistory.com/23

 

문자열 정렬하기(1) 코틀린

https://school.programmers.co.kr/learn/courses/30/lessons/120850 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

clockstillticktockticktock.tistory.com

https://clockstillticktockticktock.tistory.com/24

 

중복된 문자 제거하기 코틀린

https://school.programmers.co.kr/learn/courses/30/lessons/120888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

clockstillticktockticktock.tistory.com

https://clockstillticktockticktock.tistory.com/25

 

대문자와와 소문자 코틀린

https://school.programmers.co.kr/learn/courses/30/lessons/120893 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

clockstillticktockticktock.tistory.com

https://clockstillticktockticktock.tistory.com/26

 

인덱스 바꾸기 코틀린

https://school.programmers.co.kr/learn/courses/30/lessons/120895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

clockstillticktockticktock.tistory.com

https://clockstillticktockticktock.tistory.com/28

 

배열의 유사도 코틀린

https://school.programmers.co.kr/learn/courses/30/lessons/120903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

clockstillticktockticktock.tistory.com