1.DialogActivity
class DialogActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_dialog)
//系统自带dialog
button4.setOnClickListener {
AlertDialog.Builder(this).setTitle("标题").setMessage("信息")
.setPositiveButton("确认") { dialog, which ->
Toast.makeText(this, "点击了确定", Toast.LENGTH_SHORT).show()
}.setNegativeButton("取消") { dialog, which ->
// Toast.makeText(this, "点击了取消", Toast.LENGTH_SHORT).show()
}.show()
}
//ContentLoadingProgressBar加载
button5.setOnClickListener {
loading.show()
loading1.show()
}
//自定义dialog
button6.setOnClickListener {
MyDialogK<Any>(this).show()
}
button7.setOnClickListener {
MyDialogK(this,DialogType.LIST, mutableListOf("nihao","hahaha","xiyanyan")).show()
}
}
}
2.MyDialog
class MyDialog<T : Any>(
mcontext: Context,
type: Int = DialogType.SIMPLE,
mdata: MutableList<T> = mutableListOf()
) :
Dialog(mcontext) {
init {
when (type) {
DialogType.SIMPLE -> {
//setCanceledOnTouchOutside(false)
setContentView(R.layout.simple_dialog)
dialog_cancel.setOnClickListener {
dismiss() //控制对话框消失
}
dialog_confirm.setOnClickListener {
val selectActivity = mcontext as SelectActivity
selectActivity.finish()
dismiss()
}
}
}
}
}
3.加载
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.DialogActivity">
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/loading"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="invisible" />
...
simple_dialog
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_dialog"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/dialog_title"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_42"
android:textColor="@color/colorAccent"
android:gravity="center_vertical"
android:paddingLeft="@dimen/dp_16"
android:text="温馨提示"
android:textSize="@dimen/sp_18" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="@color/colorAccent" />
<TextView
android:id="@+id/dialog_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:lineSpacingExtra="@dimen/dp_5"
android:paddingLeft="@dimen/dp_16"
android:paddingTop="@dimen/dp_20"
android:paddingRight="@dimen/dp_16"
android:paddingBottom="@dimen/dp_30" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_05"
android:background="@color/default_click" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/dialog_cancel"
android:layout_width="0dp"
android:layout_height="@dimen/dp_38"
android:layout_weight="1"
android:gravity="center"
android:background="@drawable/default_ripple_bg"
android:text="取消"
android:textSize="@dimen/sp_15" />
<View
android:layout_width="@dimen/dp_05"
android:layout_height="match_parent"
android:background="@color/default_click" />
<TextView
android:id="@+id/dialog_confirm"
android:layout_width="0dp"
android:layout_height="@dimen/dp_38"
android:layout_weight="1"
android:gravity="center"
android:background="@drawable/default_ripple_bg"
android:text="确定"
android:textSize="@dimen/sp_15" />
</LinearLayout>
</LinearLayout>