在这用到了支持点有:方法传递、参数传递
activity_custom_dialog.xml 文件代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout> xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="提示" android:textSize="25dp" android:textColor="#000" android:layout_marginTop="10dp"/> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="你确认删除吗?" android:textSize="18dp" android:layout_marginTop="10dp"/> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginTop="20dp"> <Button android:id="@+id/qd" android:layout_width="0dp" android:layout_height="match_parent" android:text="确定" android:layout_weight="1"/> <Button android:id="@+id/qx" android:layout_width="0dp" android:layout_height="match_parent" android:text="取消" android:layout_weight="1"/> </LinearLayout> </LinearLayout>CustomDialog.java文件代码
package com.example.testapp; import androidx.annotation.NonNull; import android.app.Dialog; import android.content.Context; import android.graphics.Point; import android.os.Bundle; import android.text.TextUtils; import android.view.Display; import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.TextView; interface IMethod { void method(); } public class CustomDialog extends Dialog { private String msg; private TextView tVmsg; private IMethod iMethod; private Button btn; private Button btn2; public CustomDialog(@NonNull Context context, String msg) { super(context); this.msg = msg; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_custom_dialog); setWidth(); btn = findViewById(R.id.qd); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (iMethod != null) { iMethod.method(); } dismiss(); } }); btn2 = findViewById(R.id.qx); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); tVmsg=findViewById(R.id.tv); if (!TextUtils.isEmpty(msg)) { tVmsg.setText(msg); } } //设置对话框的宽度 private void setWidth() { WindowManager m = getWindow().getWindowManager(); Display d = m.getDefaultDisplay(); WindowManager.LayoutParams p = getWindow().getAttributes(); Point size = new Point(); d.getSize(size); p.width = (int) (size.x * 0.8);//相对于手机屏幕的80% getWindow().setAttributes(p); } public void setMethod(IMethod method) { iMethod = method; } }
CustomDialog customDialog=new CustomDialog(DialogActivity.this,"你好,确定删除吗?"); customDialog.setMethod(new IMethod() { @Override public void method() { //处理一些逻辑事务代码 Toast.makeText(DialogActivity.this,"方法传递",Toast.LENGTH_LONG).show(); } }); customDialog.show();