Android Dialog 所有基础使用封装
时间: 2024-03-22 16:42:09 浏览: 111
以下是一个基础的 Android Dialog 使用封装的示例代码,可以作为参考:
```java
public class BaseDialog extends Dialog {
public BaseDialog(@NonNull Context context) {
super(context);
init();
}
public BaseDialog(@NonNull Context context, int themeResId) {
super(context, themeResId);
init();
}
private void init() {
// 设置 Dialog 样式等
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
setCancelable(true);
setCanceledOnTouchOutside(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_layout);
// 初始化 Dialog 布局和控件
initView();
}
/**
* 初始化 Dialog 布局和控件
*/
private void initView() {
// TODO: 初始化 Dialog 布局和控件
}
/**
* 显示 Dialog
*/
public void showDialog() {
if (!isShowing()) {
show();
}
}
/**
* 隐藏 Dialog
*/
public void hideDialog() {
if (isShowing()) {
dismiss();
}
}
}
```
在这个示例中,`BaseDialog` 是一个基础的 Dialog 类,它继承自 `Dialog` 类,并且对 Dialog 进行了一些基础的封装。在 `init()` 方法中,我们设置了 Dialog 的样式等属性;在 `onCreate()` 方法中,我们初始化了 Dialog 的布局和控件;在 `showDialog()` 和 `hideDialog()` 方法中,我们分别实现了显示和隐藏 Dialog 的逻辑。
使用这个基础的 Dialog 类,我们只需要继承它,并实现 `initView()` 方法来初始化自定义 Dialog 的布局和控件即可。例如:
```java
public class MyDialog extends BaseDialog {
public MyDialog(@NonNull Context context) {
super(context);
}
public MyDialog(@NonNull Context context, int themeResId) {
super(context, themeResId);
}
@Override
protected void initView() {
// 初始化 Dialog 布局和控件
TextView titleView = findViewById(R.id.dialog_title);
Button confirmBtn = findViewById(R.id.dialog_confirm_btn);
// 设置 Dialog 标题和按钮点击事件等
titleView.setText("这是一个自定义 Dialog");
confirmBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO: 处理确认按钮点击事件
hideDialog();
}
});
}
}
```
在这个示例中,`MyDialog` 继承自 `BaseDialog` 类,并且实现了 `initView()` 方法来初始化自定义 Dialog 的布局和控件。在 `initView()` 方法中,我们可以通过 `findViewById()` 方法获取 Dialog 中的控件,并设置它们的属性和事件等。这样,我们就可以通过 `MyDialog` 类来创建和显示自定义的 Dialog 了。
阅读全文