Мне нужно добавить loadingbar
в классе адаптера, где представление находится внутри mainacctivity. Я использовал doAsync
метод для загрузки приложения при нажатии на значок приложения, который находится внутри mainacctivity.Я получаю сообщение об ошибке
android.view.ViewRootImpl $ CalledFromWrongThreadException: только исходный поток, создавший иерархию представлений, может касаться его представлений.
при использовании панели загрузки внутриметод doAsync
.Ниже приведен класс адаптера
class Adapter(ctx: Context, private val appInfoList: ArrayList<AppInfoModel>, private val contentResolver: ContentResolver,
private val packageManager: PackageManager,
private val loadingIndicator: AVLoadingIndicatorView,
private val applicationContext: Context) : RecyclerView.Adapter<Adapter.MyViewHolder>() {
private val inflater: LayoutInflater
init {
inflater = LayoutInflater.from(ctx)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Adapter.MyViewHolder {
val view = inflater.inflate(R.layout.list_item, parent, false)
return MyViewHolder(view)
}
override fun onBindViewHolder(holder: Adapter.MyViewHolder, position: Int) {
var itemView: View? = null
holder.appIcon.setImageDrawable(appInfoList[position].appIcon)
holder.appName.setText(appInfoList[position].appName)
holder.versionNumber.setText(appInfoList[position].versionNumber)
if (!appInfoList[position].isInstalled) {
holder.appInfoCard.foreground = ColorDrawable(Color.parseColor("#CCFFFFFF"))
holder.appInfoCard.isEnabled = false
holder.warningIcon.visibility = View.VISIBLE
}
holder.appInfoCard.setOnClickListener() {
Log.e("App opened", appInfoList[position].appName)
var loadingBar:AVLoadingIndicatorView= loadingIndicator.findViewById(R.id.avi)
Log.d("Loading bar", loadingBar.toString())
doAsync {
try {
loadingBar!!.setVisibility(View.VISIBLE);
LauncherUtils.setDynamicConfig(contentResolver, packageManager,applicationContext, appInfoList[position].auxName!!, appInfoList[position].packageName!!)
}
catch (e: Exception) {
Log.e("Exception-launcher", e.toString())
}
uiThread {
//loadingBar!!.setVisibility(View.INVISIBLE)
}
}
}
}
Пожалуйста, помогите мне с вопросом