Bha*_*mar 3 android appcompatactivity android-jetpack-compose
我想datePicker在 Jetpack compose 中单击按钮打开对话框。
为此,我在按钮的onClick操作中使用以下代码。
val context = LocalContext.current
Button(onClick = {
(context as AppCompatActivity).let {
val picker = MaterialDatePicker.Builder.datePicker().build()
picker.show(it.supportFragmentManager, picker.toString())
picker.addOnPositiveButtonClickListener {
// some code
}
}
})
Run Code Online (Sandbox Code Playgroud)
如果我使用的是ComponentActivity,supportFragmentManager则不受支持。
可以从 扩展活动AppCompatActivity吗?
或者有没有其他方法,如果上述解决方案不正确,我可以得到解决方案?
您可以使用 ,AppCompatActivity因为它扩展FragmentActivity了扩展ComponentActivity。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val activity = LocalContext.current as AppCompatActivity
Button(onClick={ showDatePicker(activity)}){
Text("Picker")
}
}
}
}
fun showDatePicker(activity: AppCompatActivity){
val picker = MaterialDatePicker.Builder.datePicker().build()
activity?.let {
picker.show(it.supportFragmentManager, picker.toString())
picker.addOnPositiveButtonClickListener {
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:它至少需要AppCompat 1.3.0版本。
| 归档时间: |
|
| 查看次数: |
414 次 |
| 最近记录: |