#android #kotlin #mobile #android-progressbar
Вопрос:
Я продолжал получать ошибку при отображении индикатора выполнения. Вот код для XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@ id/progress_bar"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="150dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
Затем в моем коде kotlin я продолжал получать ошибку при отображении индикатора выполнения
OnCreate()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash_screen)
init()
}
showRegisterLayout()
— выделенная часть-это моя ошибка
private fun showRegisterLayout() {
val builder = AlertDialog.Builder(this,R.style.DialogTheme)
val itemView = LayoutInflater.from(this).inflate(R.layout.layout_register,null)
val edt_first_name = itemView.findViewById<View>(R.id.edt_first_name) as TextInputEditText
val edt_last_name = itemView.findViewById<View>(R.id.edt_last_name) as TextInputEditText
val edt_phone_number = itemView.findViewById<View>(R.id.edt_phone_number) as TextInputEditText
val btn_continue = itemView.findViewById<View>(R.id.btn_register) as Button
//set_data
if(FirebaseAuth.getInstance().currentUser!!.phoneNumber != null amp;amp;
!TextUtils.isDigitsOnly(FirebaseAuth.getInstance().currentUser!!.phoneNumber))
edt_phone_number.setText(FirebaseAuth.getInstance().currentUser!!.phoneNumber)
//view
builder.setView(itemView)
val dialog = builder.create()
dialog.show()
//Event
btn_continue.setOnClickListener {
if(TextUtils.isDigitsOnly(edt_first_name.text.toString())){
Toast.makeText(this@SplashScreenActivity,"Enter your First Name", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
else if(TextUtils.isDigitsOnly(edt_last_name.text.toString())){
Toast.makeText(this@SplashScreenActivity,"Enter your Last Name", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
else if(TextUtils.isDigitsOnly(edt_phone_number.text.toString())){
Toast.makeText(this@SplashScreenActivity,"Enter your Phone Number", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
else
{
val model = DriverInfoModel()
model.firstName = edt_first_name.text.toString()
model.lastName = edt_last_name.text.toString()
model.phoneNumber = edt_phone_number.text.toString()
model.rating = 0.0
driverInfoRef.child(FirebaseAuth.getInstance().currentUser!!.uid)
.setValue(model)
.addOnFailureListener{ e ->
Toast.makeText(this@SplashScreenActivity,"" e.message, Toast.LENGTH_SHORT).show()
dialog.dismiss()
progress_bar.visibility = View.GONE
}
.addOnSuccessListener {
Toast.makeText(this@SplashScreenActivity,"Registered Successfully", Toast.LENGTH_SHORT).show()
dialog.dismiss()
progress_bar.visibility = View.GONE
}
}
}
}
progress_bar.visibility = View.GONE
это моя ошибка progress_bar
, что он продолжал гореть красным. Я пытался это исправить, но безрезультатно. Надеюсь, кто-нибудь сможет мне помочь 🙂
Комментарии:
1. Вы не инициализировали
progress_bar
… что-то вродеval progress_bar = itemView.findViewById<ProgressBar>(R.id.progress_bar)
Ответ №1:
Если вы используете синтетическую привязку, убедитесь, что вы импортировали progress_bar из правильного файла xml-макета.
В противном случае правильно инициализируйте progress_bar с помощью findViewById.
Я рекомендую использовать привязку просмотра, которая более безопасна.