android - Jetpack compose 中的 AppCompatActivity 而不是 ComponentActivity
问题描述
我想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
}
}
})
如果我使用的是ComponentActivity
,supportFragmentManager
不支持。
从 扩展活动是否可以AppCompatActivity
?
或者有没有其他方法,如果上述解决方案不正确,我可以得到解决方案吗?
解决方案
您可以使用,AppCompatActivity
因为它 extends FragmentActivity
which extends 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 {
}
}
}
注意:它至少需要AppCompat 1.3.0
版本。
推荐阅读
- laravel - DataTables 时刻按自定义格式排序
- javascript - 使用 .addclass 函数制作掷骰子不起作用
- django - FastCGI 进程经常失败,使用 IIS 在 windows 2012 服务器上部署 Django 应用程序时出错
- python - 在 Python 等无类型语言中为相关变量选择最佳语义
- python - Kivy - 水果忍者刀片效果
- sql - 行创建的时间戳在表中是唯一的吗?
- reactjs - 用动态内容反应状态
- python - 如何使用 xarray 选择跨年期间?
- webpack - Webpack 4 错误“模块解析失败:意外令牌 (1:3) 您可能需要适当的加载程序来处理此文件类型。” 尝试打包 CSS 时
- java - 使用 super.paintComponent(g) 时出现 Java NullPointerException;在公共 void paintComponent(){}