自定义 DialogAlert 对话框并实现复用
在实际开发中,我们经常需要弹出确认框、提示框或选择框。如果每个地方都写一遍 AlertDialog.Builder,代码会显得冗余且难以维护。今天我们来聊聊如何通过定义回调接口和工具类,让对话框变得可复用。
1. 定义回调接口
首先,我们需要一个接口来统一处理按钮点击事件。这样不同的业务场景只需要实现这个接口即可。
package com.example.dialogalertbyself;
/**
* 自定义 Listener
* 用于实现 Dialog 的复用
*/
public interface IAlertDialogButtonListener {
/**
* 确定按钮点击事件
*/
void onDialogOkButtonClick();
/**
* 取消按钮点击事件
*/
void onDialogCancleButtonClick();
}
注意这里有个小细节,方法名拼写我保留了原意(Cancle),实际项目中建议修正为 Cancel,不过不影响逻辑演示。
2. 主界面调用示例
在 MainActivity 中,我们不需要重复创建 AlertDialog,而是通过工具类传入消息内容和监听器。
package com.example.dialogalertbyself;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button button1;
private Button button2;
private Button button3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = findViewById(R.id.button1);
button2 = findViewById(R.id.button2);
button3 = findViewById(R.id.button3);
() {
{
Toast.makeText(MainActivity., , Toast.LENGTH_SHORT).show();
}
{
Toast.makeText(MainActivity., , Toast.LENGTH_SHORT).show();
}
};
() {
{
Toast.makeText(MainActivity., , Toast.LENGTH_SHORT).show();
}
{
Toast.makeText(MainActivity., , Toast.LENGTH_SHORT).show();
}
};
() {
{
Toast.makeText(MainActivity., , Toast.LENGTH_SHORT).show();
}
{
Toast.makeText(MainActivity., , Toast.LENGTH_SHORT).show();
}
};
button1.setOnClickListener( .OnClickListener() {
{
Util.showDialog(MainActivity., , firstButtonListener);
}
});
button2.setOnClickListener( .OnClickListener() {
{
Util.showDialog(MainActivity., , secondButtonListener);
}
});
button3.setOnClickListener( .OnClickListener() {
{
Util.showDialog(MainActivity., , thirdButtonListener);
}
});
}
}


