Có lẽ tốt nhất bạn nên đọc khoảng Dialogs
và Pickers
trước tiên.
Để thực hiện, bạn có thể có hai nút: Một để hiển thị bộ chọn ngày cho ngày bắt đầu và ngày khác cho ngày kết thúc.
Chỉnh sửa: Nếu bạn thực sự muốn hiển thị 2 bộ chọn ngày trong 1 hộp thoại, dưới đây là ví dụ về cách thực hiện. Đầu tiên, tạo một bố trí XML tùy chỉnh.
/res/layout/custom_date_picker.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<DatePicker
android:id="@+id/dpStartDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:calendarViewShown="false" />
<DatePicker
android:id="@+id/dpEndDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:calendarViewShown="false" />
</LinearLayout>
Tiếp theo là sử dụng bố trí trên trong một hộp thoại:
// These variables will hold the date values later
private int startYear, startMonth, startDay, endYear, endMonth, endDay;
/**
* Displays the start and end date picker dialog
*/
public void showDatePicker() {
// Inflate your custom layout containing 2 DatePickers
LayoutInflater inflater = (LayoutInflater) getLayoutInflater();
View customView = inflater.inflate(R.layout.custom_date_picker, null);
// Define your date pickers
final DatePicker dpStartDate = (DatePicker) customView.findViewById(R.id.dpStartDate);
final DatePicker dpEndDate = (DatePicker) customView.findViewById(R.id.dpEndDate);
// Build the dialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(customView); // Set the view of the dialog to your custom layout
builder.setTitle("Select start and end date");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
startYear = dpStartDate.getYear();
startMonth = dpStartDate.getMonth();
startDay = dpStartDate.getDayOfMonth();
endYear = dpEndDate.getYear();
endMonth = dpEndDate.getMonth();
endDay = dpEndDate.getDayOfMonth();
dialog.dismiss();
}});
// Create and show the dialog
builder.create().show();
}
Cuối cùng, bạn có thể hiển thị hộp thoại này bằng cách đơn giản gọi showDatePicker()
.
của bạn Thêm hai chọn ngày trong một xml thoại. Sử dụng OnDateChangedaListener để nghe những thay đổi. Sử dụng setNegativeButton cho "Cancel" và setPositiveButton cho "Ok" – Milan