회사를 다니고 나서,
매일 늦게 들어오지만, 별것 아닐지라도 족므이라도 배운 기록을
하나라도 남기려고 노력중이다.
오늘은 시간이 없어서 TextView를 간단히 활용하는 법만 올린다.
안 그래도 현재 코틀린으로 뷰페이저를 만지고 있는 상황인데,
서버에서 데이터를 받는 부분이 살짝 어렵다.
그래도 나는 해낼 것이라고 믿는다.
우선, setText를 한번 봐보자.
사용법
오늘 해볼 것은
간단하다.
EditText안에 글자를 버튼을 누를때 값을 가져오고,
그 가져온 값을 TextView에다가 나타내는 아주 간단한 예제이다.
java에서는 쉽겠지만,
나같은 코틀린 초보자는 어떻게 해야할지..
이렇게 하는건가? 할 수 도 있으니 살펴보자.
우선 뷰 바인딩을 통해 손 쉽게 뷰들을 참조할 수 있었다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="228dp"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="200dp"
android:text="TextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
package org.techtown.edittextkt
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import org.techtown.edittextkt.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private var mBinding : ActivityMainBinding? = null
private val binding get() = mBinding!!
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.button.setOnClickListener {
var resultText = binding.editText.text.toString()
binding.textView.text = resultText
}
}
}
우선 저번시간에 배운
뷰 바인딩을 적용한 상태이다.
아직 뷰 바인딩을 모른다면 아래 링크에서 간단히 숙지 후 다시 글을 읽기 바란다.
2021.04.22 - [Programing/Android Studio With Kotlin] - 안드로이드 코틀린 뷰 바인딩 View Binding TIL #26
앞에 binding을 붙여줌으로써, 해당 뷰의 아이디만 써도 참조가 되니,
findViewById를 쓰지 않아서 정말 편리할 것이다.
하지만 이게 중요한 것이 아니다.
button에 setOnClickListener를 달아준다.
기존 자바에 클릭리스너와는 완전 다르게 간단하다는 것을 알 수 있다.
사용하면서 놀라웠던건
어떻게 사용하냐에 따라 getText가 될수도 있고,
setText가 될 수 있다는 점이다.
자바에서는 저 둘을 따로 썼는데,
여기서는 text라는 함수 하나로,
저 두 기능을 쓸 수 있었다.
위에서 보면.
var resultText = binding.editText.text.toString()
이 부분은 자바에서는
Textview textView = editText.getText.toString()이고,
binding.textView.text = resultText
이 부분은 자바에서
textView.setText(resulText)
이런 식으로 표현할 수 있었을 것이다.
정말 간략하고, 가독성이 좋게 표현할 수 있는 코틀린...
좀 더 흥미롭게 배울 수 있는 언어일 것이라고 생각이 든다.
근데 아직은 초반이라 거부감이 살짝 있고,
아직은 자바가 더 편한 느낌이 있다.
얼른 배워서 나의 스택을 쌓아나가 보자.