kotlin-从一个片段更改多个片段的小数位
kotlin- change decimal places on multiple fragments from one fragment
对于我的应用程序,我从蓝牙连接的传感器读取了多个值。一个片段允许您编辑传感器,另一个片段显示 tableView 中的所有值。
在第三个设置片段上,我希望能够更改所有片段上显示的值的小数位。
我知道要更改小数格式我使用以下代码。
var form = DecimalFormat("#,###.##") // number format
要将此格式添加到值,请执行以下操作
form.format(temperature)
目前我有一个单选组,每个单选按钮设置为更改变量形式中的小数位数。
如何使此更改出现在所有片段中,而不仅仅是设置片段?我需要共享视图模型吗?
Shared ViewModel
非常适合这个问题,只需创建一个 ViewModel
和 form
属性 并在每个片段中获得一个 ViewModel
关联的实例activity 作为
private val viewModel: SharedViewModel by activityViewModels()
现在您可以将 form
属性 的单选更改更新为
radioGroup.setOnCheckedChangeListener { group, checkedId ->
val format = when(checkedId){
R.id.radio_two -> TWO_DECIMAL_PLACES
R.id.radio_three -> THREE_DECIMAL_PLACES
else -> DEFAULT_FORMAT
}
viewModel.form = DecimalFormat(format)
}
在此之后,在显示数据
之前,只需使用此 属性 的值
对于我的应用程序,我从蓝牙连接的传感器读取了多个值。一个片段允许您编辑传感器,另一个片段显示 tableView 中的所有值。 在第三个设置片段上,我希望能够更改所有片段上显示的值的小数位。
我知道要更改小数格式我使用以下代码。
var form = DecimalFormat("#,###.##") // number format
要将此格式添加到值,请执行以下操作
form.format(temperature)
目前我有一个单选组,每个单选按钮设置为更改变量形式中的小数位数。
如何使此更改出现在所有片段中,而不仅仅是设置片段?我需要共享视图模型吗?
Shared ViewModel
非常适合这个问题,只需创建一个 ViewModel
和 form
属性 并在每个片段中获得一个 ViewModel
关联的实例activity 作为
private val viewModel: SharedViewModel by activityViewModels()
现在您可以将 form
属性 的单选更改更新为
radioGroup.setOnCheckedChangeListener { group, checkedId ->
val format = when(checkedId){
R.id.radio_two -> TWO_DECIMAL_PLACES
R.id.radio_three -> THREE_DECIMAL_PLACES
else -> DEFAULT_FORMAT
}
viewModel.form = DecimalFormat(format)
}
在此之后,在显示数据
之前,只需使用此 属性 的值