【发布时间】:2021-07-10 08:11:06
【问题描述】:
我有一种方法可以收集大量数据,这会减慢我的应用程序(所有调用日志)的速度。我想要实现的是,在调用这个方法之前,它显示了一个ProgressDialog,这个我已经实现了。我无法做到的是,当该方法获取所有数据并将其显示在屏幕上时,它会关闭它。
对于这个方法,我使用Anko 库来调用异步方法。
这是我的代码:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = MyActivityBinding.inflate(layoutInflater)
setContentView(binding.root)
var pd = ProgressDialog(this)
pd.show()
pd.setContentView(R.layout.myCustomLoading)
pd.window?.setBackgroundDrawableResource(R.color.transparent)
pd.setCancelable(false)
doAsync { //Anko library
val myList = getData() //This methood return a List<Model>
binding.list.adapter = MyAdapter(this@MyActivity, myList)
}
pd.dismiss()
}
这段代码的问题是 ProgressDialog 没有显示,要在 RecyclerView 的屏幕上显示数据,我必须触摸屏幕或拖动它,这种情况很少见。
【问题讨论】:
-
首先尝试将pd.show()移到pd.setCancelable(false)之后,调用show()后设置布局,所以此时没有要显示的内容。
-
谢谢。我解决了这个问题,但仍然无法关闭我的 ProgressDialog 并且屏幕中显示的数据仍然存在问题:(
-
尝试关闭 pd 并使用“doAsync”中的“uiThread {”更新适配器
标签: android kotlin progressdialog android-library