Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में डेट और टाइम चेंज लिसनर कैसे लिखें?

एंड्रॉइड में DatePicker और TimePicker चेंज लिसनर

यह गाइड DatePicker और TimePicker विजेट्स के लिए चेंज लिसनर लागू करने का तरीका दिखाता है, दोनों इंलाइन विजेट्स और डायलॉग्स के लिए।

लेआउट (activity_main.xml)

<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="24dp"
    android:gravity="center">

    <DatePicker
        android:id="@+id/datePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:calendarViewShown="false" />

    <Button
        android:id="@+id/btnTimePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:text="टाइम पिकर दिखाएं" />
</LinearLayout>

MainActivity.java - DatePicker लिसनर

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Calendar;

public class MainActivity extends AppCompatActivity {
    private Button btnTimePicker;
    private DatePicker datePicker;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        datePicker = findViewById(R.id.datePicker);
        btnTimePicker = findViewById(R.id.btnTimePicker);

        // DatePicker विजेट लिसनर (इंलाइन)
        datePicker.setOnDateChangedListener((view, year, monthOfYear, dayOfMonth) -> {
            String date = String.format("चुनी गई तारीख: %02d/%02d/%d", dayOfMonth, monthOfYear + 1, year);
            Toast.makeText(this, date, Toast.LENGTH_SHORT).show();
        });

        // TimePickerDialog खोलने के लिए बटन
        btnTimePicker.setOnClickListener(v -> showTimePickerDialog());
    }

    private void showTimePickerDialog() {
        Calendar calendar = Calendar.getInstance();
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);

        TimePickerDialog timePickerDialog = new TimePickerDialog(
            this,
            (view, hourOfDay, minuteOfHour) -> {
                String time = String.format("चुना गया समय: %02d:%02d", hourOfDay, minuteOfHour);
                Toast.makeText(this, time, Toast.LENGTH_SHORT).show();
            },
            hour, minute, true // true = 24-घंटे फॉर्मेट
        );
        timePickerDialog.show();
    }
}

DatePickerDialog के साथ (इंलाइन के बजाय)

private void showDatePickerDialog() {
    Calendar calendar = Calendar.getInstance();
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int day = calendar.get(Calendar.DAY_OF_MONTH);

    DatePickerDialog datePickerDialog = new DatePickerDialog(
        this,
        (view, selectedYear, selectedMonth, selectedDay) -> {
            String date = String.format("तारीख: %02d/%02d/%d", selectedDay, selectedMonth + 1, selectedYear);
            Toast.makeText(this, date, Toast.LENGTH_SHORT).show();
        },
        year, month, day
    );
    datePickerDialog.show();
}

कॉम्बाइंड Date & Time Picker (सिंगल डायलॉग)

Material Components लाइब्रेरी का उपयोग करके:

build.gradle

implementation "com.google.android.material:material:1.10.0"

उपयोग

import com.google.android.material.datepicker.MaterialDatePicker;
import com.google.android.material.timepicker.MaterialTimePicker;
import com.google.android.material.timepicker.TimeFormat;

// डेट पिकर
MaterialDatePicker datePicker = MaterialDatePicker.Builder.datePicker()
    .setTitleText("तारीख चुनें")
    .build();

// टाइम पिकर
MaterialTimePicker timePicker = new MaterialTimePicker.Builder()
    .setTimeFormat(TimeFormat.CLOCK_24H)
    .setHour(12)
    .setMinute(0)
    .setTitleText("समय चुनें")
    .build();

// क्रमिक रूप से दिखाएं
datePicker.addOnPositiveButtonClickListener(selection -> {
    timePicker.show(getSupportFragmentManager(), "TIME_PICKER");
});
timePicker.addOnPositiveButtonClickListener(dialog -> {
    long date = datePicker.getSelection();
    int hour = timePicker.getHour();
    int minute = timePicker.getMinute();
    // संयुक्त डेट-टाइम प्रोसेस करें
});
datePicker.show(getSupportFragmentManager(), "DATE_PICKER");

लिसनर इंटरफेस तुलना

कंपोनेंट इंलाइन लिसनर डायलॉग लिसनर
DatePicker OnDateChangedListener DatePickerDialog.OnDateSetListener
TimePicker OnTimeChangedListener TimePickerDialog.OnTimeSetListener

बेस्ट प्रैक्टिसेज

  • मॉडर्न ऐप्स के लिए MaterialDatePicker/MaterialTimePicker का उपयोग करें
  • उपयोगकर्ता की लोकेल के अनुसार डेट/टाइम फॉर्मेट करें
  • न्यूनतम/अधिकतम तारीख सीमाएं सेट करें: datePickerDialog.getDatePicker().setMinDate()
  • डायलॉग्स के लिए Fragment-आधारित दृष्टिकोण का उपयोग करें (कॉन्फिगरेशन चेंज सर्वाइवल)
  1. Android में सॉफ्ट कीबोर्ड के खुलने और बंद होने का लिस्टनर कैसे बनाएं? Android में सॉफ्ट कीबोर्ड के खुलने और बंद होने का लिस्टनर कैसे बनाएं?

    यह उदाहरण दर्शाता है कि Android एक्टिविटी में सॉफ्ट कीबोर्ड की विजिबिलिटी चेंज को कैसे डिटेक्ट किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और प्रोजेक्ट बनाएं। चरण 2: लेआउट XML में कोड जोड़ें res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-

  1. Android में सर्कुलर ImageView पर शैडो और बॉर्डर कैसे जोड़ें? Android में सर्कुलर ImageView पर शैडो और बॉर्डर कैसे जोड़ें?

    यह उदाहरण दर्शाता है कि Android में प्रोग्रामेटिकली Bitmap मैनिपुलेशन करके सर्कुलर ImageView पर बॉर्डर और शैडो कैसे जोड़ा जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <Relative

  1. OneNote में Date और Time कैसे जोड़ें OneNote में Date और Time कैसे जोड़ें

    OneNote में एक नया पेज बनाते समय, एक डेट और टाइम स्टैम्प ऑटोमैटिकली आपके नोटबुक में जुड़ जाता है; आप नोटबुक में ऑटोमैटिक डेट और टाइम को एडिट कर सकते हैं और OneNote में दिए गए Time Stamp फीचर्स का उपयोग करके पेज पर डेट और टाइम जोड़ सकते हैं। आप अपने नोटबुक में करंट और पिछली डेट भी जोड़ सकते हैं या पे