因此,我尝试像这样创建自定义的加载对话框
这里是课程
class LoadingDialog(mActivity: Activity) {
private var dialog: AlertDialog
private var dialogView : View
init {
val builder = AlertDialog.Builder(mActivity)
val inflater = mActivity.layoutInflater
dialogView = inflater.inflate(R.layout.dialog_loading,null)
builder.setView(dialogView)
builder.setCancelable(false)
dialog = builder.create()
}
fun show() {
dialog.show()
}
fun dismiss() {
dialog.dismiss()
}
}
这里是“加载对话框”的xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_height="wrap_content">
<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="Please Wait"
app:layout_constraintBottom_toBottomOf="@+id/progressBar2"
app:layout_constraintStart_toEndOf="@+id/progressBar2"
app:layout_constraintTop_toTopOf="@+id/progressBar2" />
</androidx.constraintlayout.widget.ConstraintLayout>
代替硬代码“ Please Wait ....”,我要设置来自片段/活动的自定义加载消息
在我的片段中,我想这样设置我的自定义消息
val loadingDialog = LoadingDialog(mActivity)
loadingDialog.show("custom message in here")
但是我不知道如何从我的Alert Dialog类访问窗口小部件。
java或kotlin可以
textview_message
类中的LoadingDialog
,class LoadingDialog(mActivity: Activity) {
private var dialog: AlertDialog
var messageTextView: TextView // <----
private var dialogView : View
init {
val builder = AlertDialog.Builder(mActivity)
val inflater = mActivity.layoutInflater
dialogView = inflater.inflate(R.layout.dialog_loading,null)
messageTextView = dialogView.findViewById( R.id.textView_message ) // <---
builder.setView(dialogView)
builder.setCancelable(false)
dialog = builder.create()
}
fun show() {
dialog.show()
}
fun dismiss() {
dialog.dismiss()
}
}
然后在Fragment
类中访问它,
val loadingDialog = LoadingDialog(mActivity) val messageTextView = loadingDialog.messageTextView loadingDialog.show("custom message in here")