在一个Kotlin活动中,如果想将共享首选项中的项目添加到两个微调器中,可以按照以下步骤进行操作:
implementation 'androidx.preference:preference-ktx:1.1.1'
<NumberPicker
android:id="@+id/numberPicker1"
... />
<SeekBar
android:id="@+id/seekBar1"
... />
import androidx.preference.PreferenceManager
class MainActivity : AppCompatActivity() {
private lateinit var numberPicker1: NumberPicker
private lateinit var seekBar1: SeekBar
private lateinit var sharedPreferences: SharedPreferences
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 初始化微调器
numberPicker1 = findViewById(R.id.numberPicker1)
seekBar1 = findViewById(R.id.seekBar1)
// 获取SharedPreferences实例
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
// 从共享首选项中读取值,并将其应用于微调器
val value = sharedPreferences.getInt("key_name", 0)
numberPicker1.value = value
seekBar1.progress = value
// 设置微调器数值改变的监听器
numberPicker1.setOnValueChangedListener { _, _, newValue ->
// 将新值保存到共享首选项
sharedPreferences.edit().putInt("key_name", newValue).apply()
}
seekBar1.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
// 将新值保存到共享首选项
sharedPreferences.edit().putInt("key_name", progress).apply()
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {}
override fun onStopTrackingTouch(seekBar: SeekBar?) {}
})
}
}
以上代码中,假设共享首选项中的键名为"key_name"。通过使用SharedPreferences的getInt()方法获取共享首选项中的值,并将其应用于微调器。当微调器的数值发生改变时,通过设置对应的监听器,将新的数值保存到共享首选项中。
这样,在一个Kotlin活动中,共享首选项中的项目就可以被添加到两个微调器中了。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云