小编ipe*_*300的帖子

如何将editText值传递给viewModel和Livedata(Kotlin)

我正在研究Android + Kotlin,并提供了一个简单的示例来了解LiveData + ViewModel。这很简单:我有一个根活动和两个片段。FragmentOne有两个EditText。该值相加,我需要将结果传递给ViewModel。然后,我在根活动和FragmentTwo中都使用observe查看更改后的数据。

片段一

class FragmentOne: Fragment() {
   private val model by lazy { ViewModelProviders.of(activity).get(MyViewModel::class.java) }
   var resultSum:Int = 0

   override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
     val view = inflater?.inflate(R.layout.fragment_one,container,false)
     val btn = view?.findViewById<Button>(R.id.sendToModel)
     btn?.setOnClickListener({
         val field1 = n1.text.toString().toInt()
         val field2 = n2.text.toString().toInt()
         resultSum = field1 + field2
         model.update()
     })
     return view
  }
}
Run Code Online (Sandbox Code Playgroud)

viewModel

class MyViewModel: ViewModel() {
   private val fragment by lazy {FragmentOne()}
   private var _result = MutableLiveData<Int>().apply { value = 0 …
Run Code Online (Sandbox Code Playgroud)

android viewmodel android-edittext kotlin

5
推荐指数
1
解决办法
3140
查看次数

标签 统计

android ×1

android-edittext ×1

kotlin ×1

viewmodel ×1