如何解决如何在 JetpackCompose 中的 TextField 上加载值
我有这个 TextField,我希望它从 Firestore 中的对象加载一个名称,然后我希望能够更改 Firestore 中的值和更新。我尝试了几种方法,但是当我加载该值时,我无法更改它或应用程序崩溃。
以下是我最后一次尝试,其中 textField (editText) 显示为空白。我需要在 textField 中加载 player.name 以便我可以更新它
@Hiltviewmodel
class Profileviewmodel @Inject constructor(
private val repository: PlayersRepository
) : viewmodel() {
var loading = mutableStateOf(false)
val data: MutableState<Player?> = mutableStateOf(null)
val editText = mutableStateOf(
data.value?.name ?: ""
)
init {
getUser()
}
fun onValueChanged(text: String){
this.editText.value = text
}
private fun getUser() {
loading.value = true
viewmodelScope.launch {
val loggedUser = repository.getPlayerFromFirestore().data
loggedUser!!.addOnSuccessListener { document ->
val logged = document.toObject(Player::class.java)
data.value = logged!!
loading.value = false
}
}
}
@AndroidEntryPoint
class ProfileFragment : Fragment() {
private val viewmodel: Profileviewmodel by viewmodels()
override fun onCreateView(
inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?
): View {
return ComposeView(requireContext()).apply {
setContent {
val player = viewmodel.data.value
selectedImageUri.value = player?.image?.toUri()
ReiDoFifaTheme {
if (player != null) {
OutlinedTextField(
modifier = Modifier
.align(Alignment.CenterHorizontally)
.padding(bottom = 16.dp),value = editText,onValueChange = { newValue ->
viewmodel.onValueChanged(newValue)
}
)
另外,如何指定 textField 只接受正整数并将其限制为 2 位数字?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。