Kotlin Study(1) 간단한 화면 만들기

chanykim·2021년 4월 28일
0

Kotlin

목록 보기
1/2

kotlin-android-extensions 확장 플러그인

Gradle Scripts 폴더 안에 있는 build.gradle(Module...) 파일을 열어서 상단에 있는 plugin 중괄호 안에 id 'kotlin-android-extensions' 라는 확장 플러그인을 추가한다.
kotlin-android-extensions플러그인은 화면을 만드는 XML 파일에 버튼이나 입력상자 등을 추가했을 때 소스 파일에서 id만으로 참조할 수 있게 만들어준다.

버튼 id에 따른 ClickListener

<activity_main.xml>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="확인"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.294"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.713" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="확인1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.702"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.713" />
<MainActivity.kt>

        button.setOnClickListener {
            Toast.makeText(applicationContext, "버튼 눌림!", Toast.LENGTH_LONG).show();
        }
        button1.setOnClickListener {
            Toast.makeText(applicationContext, "버튼 눌림1!", Toast.LENGTH_LONG).show();
        }

입력상자에서 글자를 가져올 때

형식: <앱 화면에 추가한 입력상자의 ID>.text.toString()
예제: editTextTextPersonName.text.toString()

텍스트뷰에 글자를 보여줄 때

형식: <앱 화면에 추가한 텍스트 뷰의 ID>.setText("<표시할 글자>")
예제: textView.setText("안녕하세요~")

형식: val 변수이름 = editTextTextPersonName.text.toString()
     <앱 화면에 추가한 텍스트 뷰의 ID>.setText("<표시할 글자: ${입력글자}>")
예제: val input = editTextTextPersonName.text.toString()
     textView.setText("입력한 값: ${input}")

레이아웃

레이아웃은 눈에 보이지 않아서 버튼과 같은 위젯과 구분된다.

위젯: 눈에 보이는 것
레이아웃: 다른 것들을 담아두면서 눈에 보이지 않는 것

과제: 강아지 객체의 함수에 콜백 함수 전달하기

  • 리니어 레이아웃을 이용해 입력상자 두 개와 버튼 두 개, 텍스트뷰 하나가 들어간 화면 레이아웃을 만듭니다.
  • 버튼에는 확인1, 확인2 라는 글자가 보이도록 합니다. 첫 번째 버튼을 누르면 첫 번째 입력상자의 글자를 가져와 텍스트뷰에 보여줍니다. 두 번째 버튼을 누르면 두번째 입력 상자의 글자를 가져와 텍스트뷰에 보여줍니다.

이렇게 만들어야 한다.

정답인지는 모르겠지만 최대한 비슷하게 만들어보았다.
10분만에 풀라고 하는데 30분은 걸린 것 같다...

이러한 형식으로 만들었고 그 결과,

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

        button.setOnClickListener {
            val input = editTextTextPersonName.text.toString()
            textView.setText("입력한 값: ${input}")
        }

        button2.setOnClickListener {
            val input = editTextTextPersonName2.text.toString()
            textView.setText("입력한 값: ${input}")
        }
    }
}

책에서 코들린 문법이랑 자바 문법이랑 비교하는게 있는데 확실히 코틀린 문법이 더 쉽다고 느껴졌다.
; 이나 문법적으로 줄어드는 부분이 많아서 참 좋은 것 같다.
계속해서 공부해 나가봐야겠다.

profile
오늘보다 더 나은 내일

0개의 댓글