除了 AlertDialog 之外,Android 还提供了其他几种常用的对话框,包括 ProgressDialog、DatePickerDialog 和 TimePickerDialog。以下是这些对话框的基本使用示例:

1. ProgressDialog(进度对话框)

ProgressDialog 通常用于显示任务执行的进度。以下是一个简单的示例:
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;

public class ProgressDialogHelper {

    public static void showProgressDialog(Context context, String message) {
        ProgressDialog progressDialog = new ProgressDialog(context);
        progressDialog.setMessage(message);
        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

        // 创建并执行一个异步任务,用于模拟后台任务的执行
        MyAsyncTask myAsyncTask = new MyAsyncTask(progressDialog);
        myAsyncTask.execute();
    }

    // 示例的异步任务,实际应替换为自己的任务
    private static class MyAsyncTask extends AsyncTask<Void, Void, Void> {
        private ProgressDialog progressDialog;

        MyAsyncTask(ProgressDialog progressDialog) {
            this.progressDialog = progressDialog;
        }

        @Override
        protected Void doInBackground(Void... voids) {
            // 模拟后台任务
            try {
                Thread.sleep(5000); // 模拟任务执行时间
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            // 隐藏进度对话框
            progressDialog.dismiss();
        }
    }
}

在这个示例中,showProgressDialog 方法创建了一个 ProgressDialog 对象,并设置了消息和进度样式。然后,使用 AsyncTask 来模拟后台任务的执行,任务完成后隐藏对话框。

2. DatePickerDialog(日期选择对话框)

DatePickerDialog 用于允许用户选择日期。以下是一个简单的示例:
import android.app.DatePickerDialog;
import android.content.Context;
import android.widget.DatePicker;
import android.widget.Toast;

import java.util.Calendar;

public class DatePickerDialogHelper {

    public static void showDatePickerDialog(Context context) {
        // 获取当前日期
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);

        // 创建日期选择对话框
        DatePickerDialog datePickerDialog = new DatePickerDialog(
                context,
                new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int selectedYear, int monthOfYear, int dayOfMonth) {
                        // 处理用户选择的日期
                        String selectedDate = selectedYear + "-" + (monthOfYear + 1) + "-" + dayOfMonth;
                        Toast.makeText(context, "Selected Date: " + selectedDate, Toast.LENGTH_SHORT).show();
                    }
                },
                year,
                month,
                dayOfMonth);

        // 显示日期选择对话框
        datePickerDialog.show();
    }
}

3. TimePickerDialog(时间选择对话框)

TimePickerDialog 用于允许用户选择时间。以下是一个简单的示例:
import android.app.TimePickerDialog;
import android.content.Context;
import android.widget.TimePicker;
import android.widget.Toast;

import java.util.Calendar;

public class TimePickerDialogHelper {

    public static void showTimePickerDialog(Context context) {
        // 获取当前时间
        Calendar calendar = Calendar.getInstance();
        int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);

        // 创建时间选择对话框
        TimePickerDialog timePickerDialog = new TimePickerDialog(
                context,
                new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int selectedHourOfDay, int selectedMinute) {
                        // 处理用户选择的时间
                        String selectedTime = selectedHourOfDay + ":" + selectedMinute;
                        Toast.makeText(context, "Selected Time: " + selectedTime, Toast.LENGTH_SHORT).show();
                    }
                },
                hourOfDay,
                minute,
                true);

        // 显示时间选择对话框
        timePickerDialog.show();
    }
}

这些示例提供了 ProgressDialog、DatePickerDialog 和 TimePickerDialog 的基本使用方法。你可以根据你的需求进行相应的修改和定制。


转载请注明出处:http://www.pingtaimeng.com/article/detail/15156/Android