Jetpack Compose의 TextField (EditText)에 대한 다양한 [Android Kotlin]
5993 단어 안드로이드JetpackComposeKotlin
소개
Jetpack Compose의 EditText적 존재 TextField의 기본적인 것을 써 갑니다.
만지기 시작한 그 날에 쓰고 있기 때문에 정정해야 할 점 등 있으면 코멘트 부탁드립니다!
참고
htps : //로 ゔぇぺぺr. 안 d로이 d. 코 m / 지 t 파 ck / 코 m 포세 / s 갓 # s 갓
htps //w w. 요츠베. 이 m/와 tch? v = 오_도 P5f 주
그럼 빨리
MainAcitvity.kt@Composable
fun textField(){
TextField(
value = "キョン",
onValueChange = {}
)
}
TextField()로 TextField를 기동해 인수로 여러가지 설정해 가는 형태군요.
value → TextField의 값을 설정
onValueChange → TextField의 값의 변화를 받는다
라는 역할이 있습니다.
문제점 1 TextField 값을 편집할 수 없음
MainActivity.kt@Composable
fun textField(){
val fieldValue = remember { mutableStateOf("キョン") }
TextField(
value = fieldValue.value,
onValueChange = { newValue ->
fieldValue.value = newValue
})
}
이제 사용자가 값을 편집할 수 있습니다! onValueChange에서 TextField의 값에 변화가 있으면 값을 얻어 fieldValue에 대입. value에 fieldValue를 대입으로 TextField의 값이 바뀐다. 라는 느낌입니다.
remember(), mutableStateOf() 는 정직 분위기에서 사용하고 있어, 어떻게 일하고 있는지 설명할 수 없기 때문에 공식의 링크를 붙여 둡니다. htps : //에서 ゔぇぺぺr. 안 d로이 d. 코 m / 지 t 파 CK / 코 m 포세 / s 갓 # s 갓
문제점 2 화면 회전하면 값이 리셋됨
ViewModel은 화면이 회전해도 값을 유지해 주므로 ViewModel을 사용하여 해결해 갑니다.
MainViewModel.ktclass MainViewModel: ViewModel() {
val query = mutableStateOf("キョン")
fun onQueryChanged(newValue: String){
query.value = newValue
}
}
MainActivity.kt@Composable
fun textField() {
val fieldValue = viewModel.query.value
TextField(value = fieldValue,
onValueChange = { newValue ->
viewModel.onQueryChanged(newValue)
})
}
ViewModel의 query를 참조해 TextField에 대입한다.
ViweModel 내에서 query 값을 업데이트하는 함수를 정의하고 MainActivity onValueChange에서 함수를 호출합니다.
이 두 가지로 화면이 회전해도 값이 리셋되지 않는 TextField를 할 수 있습니다!
또 ViewModel에 값을 저장해 두면 Button을 누르면 TextField의 값을 취득하는 것도 간단하게 구현할 수 있네요.
@Composable
fun Button() {
Button(
onClick = {
println(viewModel.query.value)
},
) {
Text("Button")
}
}
이상
Reference
이 문제에 관하여(Jetpack Compose의 TextField (EditText)에 대한 다양한 [Android Kotlin]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/RiutaDaiki/items/75f1e02af607131344a6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
MainAcitvity.kt
@Composable
fun textField(){
TextField(
value = "キョン",
onValueChange = {}
)
}
TextField()로 TextField를 기동해 인수로 여러가지 설정해 가는 형태군요.
value → TextField의 값을 설정
onValueChange → TextField의 값의 변화를 받는다
라는 역할이 있습니다.
문제점 1 TextField 값을 편집할 수 없음
MainActivity.kt@Composable
fun textField(){
val fieldValue = remember { mutableStateOf("キョン") }
TextField(
value = fieldValue.value,
onValueChange = { newValue ->
fieldValue.value = newValue
})
}
이제 사용자가 값을 편집할 수 있습니다! onValueChange에서 TextField의 값에 변화가 있으면 값을 얻어 fieldValue에 대입. value에 fieldValue를 대입으로 TextField의 값이 바뀐다. 라는 느낌입니다.
remember(), mutableStateOf() 는 정직 분위기에서 사용하고 있어, 어떻게 일하고 있는지 설명할 수 없기 때문에 공식의 링크를 붙여 둡니다. htps : //에서 ゔぇぺぺr. 안 d로이 d. 코 m / 지 t 파 CK / 코 m 포세 / s 갓 # s 갓
문제점 2 화면 회전하면 값이 리셋됨
ViewModel은 화면이 회전해도 값을 유지해 주므로 ViewModel을 사용하여 해결해 갑니다.
MainViewModel.ktclass MainViewModel: ViewModel() {
val query = mutableStateOf("キョン")
fun onQueryChanged(newValue: String){
query.value = newValue
}
}
MainActivity.kt@Composable
fun textField() {
val fieldValue = viewModel.query.value
TextField(value = fieldValue,
onValueChange = { newValue ->
viewModel.onQueryChanged(newValue)
})
}
ViewModel의 query를 참조해 TextField에 대입한다.
ViweModel 내에서 query 값을 업데이트하는 함수를 정의하고 MainActivity onValueChange에서 함수를 호출합니다.
이 두 가지로 화면이 회전해도 값이 리셋되지 않는 TextField를 할 수 있습니다!
또 ViewModel에 값을 저장해 두면 Button을 누르면 TextField의 값을 취득하는 것도 간단하게 구현할 수 있네요.
@Composable
fun Button() {
Button(
onClick = {
println(viewModel.query.value)
},
) {
Text("Button")
}
}
이상
Reference
이 문제에 관하여(Jetpack Compose의 TextField (EditText)에 대한 다양한 [Android Kotlin]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/RiutaDaiki/items/75f1e02af607131344a6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@Composable
fun textField(){
val fieldValue = remember { mutableStateOf("キョン") }
TextField(
value = fieldValue.value,
onValueChange = { newValue ->
fieldValue.value = newValue
})
}
ViewModel은 화면이 회전해도 값을 유지해 주므로 ViewModel을 사용하여 해결해 갑니다.
MainViewModel.kt
class MainViewModel: ViewModel() {
val query = mutableStateOf("キョン")
fun onQueryChanged(newValue: String){
query.value = newValue
}
}
MainActivity.kt
@Composable
fun textField() {
val fieldValue = viewModel.query.value
TextField(value = fieldValue,
onValueChange = { newValue ->
viewModel.onQueryChanged(newValue)
})
}
ViewModel의 query를 참조해 TextField에 대입한다.
ViweModel 내에서 query 값을 업데이트하는 함수를 정의하고 MainActivity onValueChange에서 함수를 호출합니다.
이 두 가지로 화면이 회전해도 값이 리셋되지 않는 TextField를 할 수 있습니다!
또 ViewModel에 값을 저장해 두면 Button을 누르면 TextField의 값을 취득하는 것도 간단하게 구현할 수 있네요.
@Composable
fun Button() {
Button(
onClick = {
println(viewModel.query.value)
},
) {
Text("Button")
}
}
이상
Reference
이 문제에 관하여(Jetpack Compose의 TextField (EditText)에 대한 다양한 [Android Kotlin]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/RiutaDaiki/items/75f1e02af607131344a6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Jetpack Compose의 TextField (EditText)에 대한 다양한 [Android Kotlin]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/RiutaDaiki/items/75f1e02af607131344a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)