Android 双向数据绑定可以使用 Data Binding Library 来实现,而双向数据绑定与 Double(Kotlin)可以通过以下步骤实现:
android {
...
dataBinding {
enabled = true
}
}
activity_main.xml
:
YourViewModel.kt
,其中包含两个属性 inputText 和 resultText,并实现 INotifyPropertyChanged 接口,以便在属性更改时通知视图更新:import androidx.databinding.BaseObservable
import androidx.databinding.Bindable
import androidx.databinding.library.baseAdapters.BR
class YourViewModel : BaseObservable() {
@get:Bindable
var inputText: String = ""
set(value) {
field = value
notifyPropertyChanged(BR.inputText)
// 在这里更新双向绑定的值
}
@get:Bindable
var resultText: String = ""
set(value) {
field = value
notifyPropertyChanged(BR.resultText)
// 在这里更新双向绑定的值
}
}
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import com.example.yourpackage.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var viewModel: YourViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
viewModel = YourViewModel()
binding.viewModel = viewModel
binding.lifecycleOwner = this
}
}
这样,当用户在 EditText 中输入文本时,inputText 属性会更新,并且 resultText 属性也会更新并在 TextView 中显示。同样地,当 resultText 属性更改时,TextView 中的文本也会更新。这就是双向数据绑定的实现方式。