如何从片段更改自定义警报对话框中的小部件文本

问题描述 投票:0回答:1

因此,我尝试像这样创建自定义的加载对话框

enter image description here

这里是课程

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可以

android xml android-alertdialog
1个回答
0
投票
首先,初始化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")

© www.soinside.com 2019 - 2024. All rights reserved.