Gradle Scripts 폴더 안에 있는 build.gradle(Module...) 파일을 열어서 상단에 있는 plugin 중괄호 안에 id 'kotlin-android-extensions'
라는 확장 플러그인을 추가한다.
kotlin-android-extensions
플러그인은 화면을 만드는 XML 파일에 버튼이나 입력상자 등을 추가했을 때 소스 파일에서 id만으로 참조할 수 있게 만들어준다.
<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}")
레이아웃은 눈에 보이지 않아서 버튼과 같은 위젯과 구분된다.
위젯: 눈에 보이는 것
레이아웃: 다른 것들을 담아두면서 눈에 보이지 않는 것
이렇게 만들어야 한다.
정답인지는 모르겠지만 최대한 비슷하게 만들어보았다.
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}")
}
}
}
책에서 코들린 문법이랑 자바 문법이랑 비교하는게 있는데 확실히 코틀린 문법이 더 쉽다고 느껴졌다.
; 이나 문법적으로 줄어드는 부분이 많아서 참 좋은 것 같다.
계속해서 공부해 나가봐야겠다.