본문 바로가기

문돌이 존버/앱 개발 스터디

코틀린(kotlin) - seekbar 활용 앱 검사 화면 만들기

반응형
본 글은 스파르타 코딩 클럽의 "안드로이드 앱개발 기초반" 강의를 듣고 작성한 개발일지입니다.

배포를 위한 앱을 만들기 위해서는 프로젝트 생성시 Package name을 주의해야 합니다. 

1. 중복 불가
2. 소문자 영어만 가능
3. com.(중복이 어려울 이름).(프로젝트 이름)

복습

이전에 소개했던 앱 이름 변경에 대해 다시 알아봅시다. app -> res -> values 에 위치한 strings.xml 파일에서 "app_name" 값을 변경하면 됩니다.

// strings.xml
<resources>
  <string name="app_name">자기만의 앱 이름</string>
</resources>

앱 아이콘을 변경하는 방법은 아래와 같습니다.

app -> res -> mipmap 에 위치한 ic_launcher_roundic_launcher 디렉토리를 Delete 를 클릭합니다. 이후 메시지 창에서 Delete Anyway 를 누르면 기존 아이콘이 삭제되고, 새로운 이미지를 ic_launcer_round 및 ic_launcer 로 변경하고 mipmap 디렉토리에 추가합니다.

SeekBar 값 다뤄보기

먼저 activity_main.xml 에 탬플릿 코드를 추가했고 아래와 같은 레이아웃이 완성되었습니다.

"나의 유형 확인하기" 버튼 동작을 위해 clickSubmit 함수를 생성합니다. 그리고 activity_main.xml 파일에서 해당 버튼에 android:onClick="clickSubmit" 를 추가하면 되겠죠.

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

    fun clickSubmit(view: View) {
        Toast.makeText(view.context, "실행력 넘치는 개발자", Toast.LENGTH_SHORT).show()
    }
}

SeekBar는 progress 값을 이용하여 현재 선택된 값을 확인할 수 있습니다. 레이아웃 탬플릿을 보면 min = 1, max = 5로 설정이 되어있어 1 ~ 5 사이의 값만 나오게 됩니다.

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

    fun clickSubmit(view: View) {
        var barQ1: SeekBar = findViewById(R.id.barQ1)
        var answer1 = barQ1.progress
        Toast.makeText(view.context, "Q1: ${answer1}", Toast.LENGTH_SHORT).show()
    }
}
"Q1: ${answer1}" -> String을 변수로 이용해서 표현할 때 사용하는 문자열 탬플릿

조건문을 이용해서 숫자가 아닌 문장으로 표현해보겠습니다.

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

    fun clickSubmit(view: View) {
        var barQ1: SeekBar = findViewById(R.id.barQ1)
        var answer1 = barQ1.progress
        if (answer1 == 1) {
            Toast.makeText(view.context, "앱을 설계하는 개발자", Toast.LENGTH_SHORT).show()
        } else if (answer1 == 2) {
            Toast.makeText(view.context, "로직을 고민하는 개발자", Toast.LENGTH_SHORT).show()
        } else if (answer1 == 3) {
            Toast.makeText(view.context, "밸런스형 개발자", Toast.LENGTH_SHORT).show()
        } else if (answer1 == 4) {
            Toast.makeText(view.context, "만드는게 좋은 개발자", Toast.LENGTH_SHORT).show()
        } else if (answer1 == 5) {
            Toast.makeText(view.context, "실행력 넘치는 개발자", Toast.LENGTH_SHORT).show()
        }
    }
}

728x90
반응형