📅  最后修改于: 2023-12-03 14:52:12.721000             🧑  作者: Mango
在 Android 应用开发中,通常需要为用户提供一种安全退出应用程序的方式。这可以通过创建自定义退出对话框来实现。本文将介绍如何在 Android 中制作自定义退出对话框,以提高应用程序的用户体验和安全性。
在开始创建自定义退出对话框之前,您需要执行以下操作:
完成上述工作后,您可以开始创建自定义退出对话框了。
要创建自定义退出对话框,请按照以下步骤操作:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<TextView
android:text="你确定要退出应用?"
android:textSize="18sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginBottom="16dp"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:id="@+id/btn_cancel"
android:text="取消"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"/>
<Button
android:id="@+id/btn_exit"
android:text="退出"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"/>
</LinearLayout>
</LinearLayout>
public class ExitDialogFragment extends DialogFragment {
public static final String TAG = "ExitDialogFragment";
private OnExitClickedListener mListener;
public interface OnExitClickedListener {
void onExitClicked();
}
public static ExitDialogFragment newInstance() {
return new ExitDialogFragment();
}
public void setOnExitClickedListener(OnExitClickedListener listener) {
mListener = listener;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
LayoutInflater inflater = requireActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_exit, null);
Button btnCancel = view.findViewById(R.id.btn_cancel);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dismiss();
}
});
Button btnExit = view.findViewById(R.id.btn_exit);
btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener != null) {
mListener.onExitClicked();
}
dismiss();
}
});
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setView(view);
return builder.create();
}
}
public class MainActivity extends AppCompatActivity implements ExitDialogFragment.OnExitClickedListener {
private static final String TAG = "MainActivity";
private Button btnExit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnExit = findViewById(R.id.btn_exit);
btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ExitDialogFragment dialog = ExitDialogFragment.newInstance();
dialog.setOnExitClickedListener(MainActivity.this);
dialog.show(getSupportFragmentManager(), ExitDialogFragment.TAG);
}
});
}
@Override
public void onExitClicked() {
Log.i(TAG, "Exiting application...");
finish();
}
}
完成上述步骤后,您可以运行您的应用程序并点击退出按钮来查看自定义退出对话框的效果。效果如下:
本文介绍了如何在 Android 中制作自定义退出对话框。通过实现自定义退出对话框,您可以为应用程序提供一种安全和可靠的退出方式,同时提高用户体验。