Я пытаюсь показать индикатор выполнения, когда я щелкаю ячейку в представлении переработчика, чтобы показать, что она занята.
У меня есть фрагмент, который при загрузке показывает, что индикатор выполнения не проблема (это просто анимированная строка и не связана с прогрессом).
Я скрываю индикатор выполнения, и когда я щелкаю ячейку в адаптере утилизатора, я пытаюсь сделать индикатор выполнения видимым, но не важно, что выдает ошибку, я пробовал его в привязке, а также вызывал функцию во фрагменте из адаптера утилизатора при щелчке по ячейке, функция работает, но когда она показывает индикатор выполнения как видимый, выдает ошибку,
progressBar не может быть нулевым
вот мой код
В утилите-адаптере
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when(holder) {
is HistoryRecyclerAdaptor.HistHolder -> {
holder.bind(items.get(position))
holder.itemView.setOnClickListener { v ->
val pdfN1 = holder.pdf.replace("BBBuxD3Uy/Payments/", "")
val pdfN = pdfN1.replace(".pdf", "")
var pdfI = mStorageRef!!.child(usernameGet).child("Payments").child("$pdfN1")
val localFile = File.createTempFile("$pdfN-", ".pdf")
pdfI.getFile(localFile).addOnSuccessListener {
// findViewById<PDFView>(R.id.activityMainPdfView).fromAsset(localFile.path).show()
val fragment = HistoryFragment()
fragment.openFile(holder.itemView.context, localFile.path)
}.addOnFailureListener {
// Handle any errors
}
}
}
}
}
и фрагменте
fun openFile(context: Context, localPath: String?) { // Create URI
println("Tony Open file hit")
progressBar2.visibility = View.VISIBLE
try {
val file = File(localPath)
val uri = FileProvider.getUriForFile(
context,
context.applicationContext.packageName.toString() + ".provider", file
)
val intent = Intent(Intent.ACTION_VIEW)
println("Tony Open file hit 2")
if (file.toString().contains(".pdf")) { // PDF file
intent.setDataAndType(uri, "application/pdf")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
context.startActivity(intent)
println("Tony Open file hit 3")
}
} catch (e: Exception) {
e.printStackTrace()
}
}
и ошибка
java .lang.IllegalStateException: progressBar2 не должен быть нулевым