如何转换 MutableLiveData漂浮?安卓

发布于 2025-01-14 21:34:35 字数 2037 浏览 6 评论 0原文

我目前正在制作一个贷款计算器,它使用 ViewModel 在片段之间存储数据。该应用程序使用 EditText 和 Seekbar,用户可以绘制数据并将其发送到共享 Viewmodel。

当我尝试转换用户输入的字符串时,我很难将数据转换为浮点值,以便我可以用它来计算贷款计划。

有谁知道该怎么做?

从编辑文本输入 LoanNumber:AnnuitetViewModel.kt

 private var _loanNumber = MutableLiveData<Float>()
    val loanNumber: LiveData<Float>
        get() = _loanNumber

    fun saveLoanNumber(newLoanNumber: Float){
        _loanNumber.value = newLoanNumber
    }

AnnuitetFrament.kt

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    binding.lifecycleOwner = this
    viewModel = ViewModelProvider(this)[AnnuitetViewModel::class.java]
    binding.viewmodel = viewModel


    AnnuitetViewModel.loanNumber.observe(viewLifecycleOwner){
        binding.laanebelop.text
    }

 }

    binding.BeregnLaanAnnuitet.setOnClickListener {
        AnnuitetViewModel.saveLoanNumber(binding.laanebelop.text.toString())
      
        findNavController().navigate(R.id.action_annuitetFragment_to_annuitetPlanFragment)
    }

片段:annuitet.xml:

<EditText
                    android:id="@+id/laanebelop"
                    android:layout_width="196dp"
                    android:layout_height="56dp"
                    android:autofillHints=""
                    android:ems="10"
                    android:hint="@string/hint"
                    android:inputType="numberDecimal"
                    android:text=""
                    android:textColorHint="#757575"
                    android:visibility="visible"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.73"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintVertical_bias="0.248" />

I am currently making a Loan Calculator that uses ViewModel to store data between fragments. The app uses EditText and Seekbar user can plot in data and sends it to a shared Viewmodel.

When I try to convert string input from user, I struggle to convert the data into Float value so I can use it to calculate the loan plan.

Do anyone know how to do this?

Input LoanNumber from Edit Text: AnnuitetViewModel.kt

 private var _loanNumber = MutableLiveData<Float>()
    val loanNumber: LiveData<Float>
        get() = _loanNumber

    fun saveLoanNumber(newLoanNumber: Float){
        _loanNumber.value = newLoanNumber
    }

AnnuitetFrament.kt

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    binding.lifecycleOwner = this
    viewModel = ViewModelProvider(this)[AnnuitetViewModel::class.java]
    binding.viewmodel = viewModel


    AnnuitetViewModel.loanNumber.observe(viewLifecycleOwner){
        binding.laanebelop.text
    }

 }

    binding.BeregnLaanAnnuitet.setOnClickListener {
        AnnuitetViewModel.saveLoanNumber(binding.laanebelop.text.toString())
      
        findNavController().navigate(R.id.action_annuitetFragment_to_annuitetPlanFragment)
    }

fragment:annuitet.xml:

<EditText
                    android:id="@+id/laanebelop"
                    android:layout_width="196dp"
                    android:layout_height="56dp"
                    android:autofillHints=""
                    android:ems="10"
                    android:hint="@string/hint"
                    android:inputType="numberDecimal"
                    android:text=""
                    android:textColorHint="#757575"
                    android:visibility="visible"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.73"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintVertical_bias="0.248" />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉月流沐 2025-01-21 21:34:35

解决它。通过使用 Transformation.map 我可以将 String 更改为 Float。然后我就可以继续计算贷款计划了。

private var _loanNumber = MutableLiveData<String>()
val loanNumber: LiveData<Float>
     get() = Transformations.map(_loanNumber) { it.toFloat() }

Solve it. By using Transformation.map I could change String to Float. Then I can move on to calculate the loan plan.

private var _loanNumber = MutableLiveData<String>()
val loanNumber: LiveData<Float>
     get() = Transformations.map(_loanNumber) { it.toFloat() }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文