Android中activity如何调用公共的自定义dialog,并使用确定。取消按钮
时间: 2024-02-20 19:58:10 浏览: 22
在 Android 中,如果你想在 Activity 中调用公共的自定义 Dialog,并使用确定和取消按钮,你可以按照以下步骤进行:
1. 首先,创建一个自定义的 Dialog 类,该类需要继承自 Dialog 类,并实现确定和取消按钮的点击事件。例如:
```
public class MyDialog extends Dialog {
private OnDialogButtonClickListener listener;
public MyDialog(@NonNull Context context) {
super(context);
setContentView(R.layout.dialog_layout);
Button okButton = findViewById(R.id.ok_button);
Button cancelButton = findViewById(R.id.cancel_button);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.onOkButtonClick();
}
dismiss();
}
});
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.onCancelButtonClick();
}
dismiss();
}
});
}
public void setOnDialogButtonClickListener(OnDialogButtonClickListener listener) {
this.listener = listener;
}
public interface OnDialogButtonClickListener {
void onOkButtonClick();
void onCancelButtonClick();
}
}
```
在这个例子中,我们创建了一个 MyDialog 类,该类继承自 Dialog 类,实现了确定和取消按钮的点击事件,并提供了一个 OnDialogButtonClickListener 接口,用于在 Activity 中监听确定和取消按钮的点击事件。
2. 然后,在 Activity 中通过 LayoutInflater 加载自定义的 Dialog 布局,并创建 MyDialog 对象。例如:
```
LayoutInflater inflater = LayoutInflater.from(this);
View layout = inflater.inflate(R.layout.dialog_layout, null);
MyDialog dialog = new MyDialog(this);
dialog.setContentView(layout);
```
在这个例子中,我们使用 LayoutInflater 加载了自定义的 Dialog 布局,并将其设置为 MyDialog 的内容视图。
3. 接下来,我们需要在 Activity 中实现 OnDialogButtonClickListener 接口,以便监听 MyDialog 中确定和取消按钮的点击事件。例如:
```
dialog.setOnDialogButtonClickListener(new MyDialog.OnDialogButtonClickListener() {
@Override
public void onOkButtonClick() {
// 在这里处理确定按钮的点击事件
}
@Override
public void onCancelButtonClick() {
// 在这里处理取消按钮的点击事件
}
});
```
在这个例子中,我们使用 setOnDialogButtonClickListener() 方法设置了 MyDialog 的 OnDialogButtonClickListener,以便在 Activity 中监听确定和取消按钮的点击事件。
4. 最后,我们需要在 Activity 中调用 MyDialog 的 show() 方法,显示自定义的 Dialog。例如:
```
dialog.show();
```
在这个例子中,我们调用了 MyDialog 的 show() 方法,显示自定义的 Dialog。
注意,在 Activity 销毁时,需要调用 MyDialog 的 dismiss() 方法,以便释放 Dialog 相关的资源。例如:
```
@Override
protected void onDestroy() {
super.onDestroy();
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
}
```