परिचय
`DatePickerDialog` उपयोगकर्ता को एक डायलॉग से दिनांक चुनने की अनुमति देता है। यह लेख `DialogFragment` का उपयोग करके एक डेट पिकर दिखाने और चयनित दिनांक को TextView में प्रदर्शित करने का तरीका दिखाता है।
कार्यान्वयन
चरण 1: लेआउट (activity_main.xml)
<TextView android:id="@+id/textView" android:text="Date" android:textSize="30dp" android:layout_centerHorizontal="true" android:layout_above="@id/button" ... /> <Button android:id="@+id/button" android:text="Set Date" android:layout_centerInParent="true" ... />
चरण 2: DatePickerFragment.java
public class DatePickerFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(), year, month, day);
}
}चरण 3: MainActivity.java
public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(v -> {
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getSupportFragmentManager(), "date picker");
});
}
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
String dateString = DateFormat.getDateInstance(DateFormat.FULL).format(c.getTime());
TextView textView = findViewById(R.id.textView);
textView.setText(dateString);
}
}व्याख्या
- `DialogFragment` जीवनचक्र-सुरक्षित तरीके से डायलॉग प्रबंधित करता है।
- `OnDateSetListener` इंटरफेस चयनित दिनांक प्राप्त करता है।
- `DateFormat.FULL` लंबा प्रारूप (जैसे "Monday, January 1, 2024") देता है।