Search code examples
androiddatepickerdialogoverridingtimepicker

Can we print Time Picker and Date together in single app using differrent integer in onCreateDialog?


package com.example.timepickerdialog;

import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;

import android.app.Dialog;

import android.app.TimePickerDialog;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.TimePicker;

import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button button, button2;
    static final int DIALOG_ID = 0, SECONDDIALOGID = 0;
    int ApnaHour;
    int ApnaMinute, ApnaYear, ApanaDay, ApnaMonth;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    DialogListener();
}

public void DialogListener() {
    button = (Button) findViewById(R.id.button);
    button2 = (Button) findViewById(R.id.button2);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showDialog(DIALOG_ID);
        }
    });


    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showDialog(SECONDDIALOGID);
        }
    });
}

Problem below here in this override show error. If I remove int hh then error show in DateDialogPicker. Plz tell me is this code wrong or not.

@Override
protected Dialog onCreateDialog(int id , int hh) {
    if (id == DIALOG_ID)
        return new TimePickerDialog(MainActivity.this, SaadaTimePickerListener, ApnaHour, ApnaMinute, false);
    return null;
    if (hh== SECONDDIALOGID)
        return new DatePickerDialog(this, DateSaadaPickerListener,ApanaDay, ApnaMonth, ApnaYear);
    return null;}

Plz solve above override error.

protected TimePickerDialog.OnTimeSetListener SaadaTimePickerListener = new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        ApnaHour = hourOfDay;
        ApnaMinute = minute;
        Toast.makeText(MainActivity.this, ApnaHour + ":" + ApnaMinute, Toast.LENGTH_SHORT).show();

    }
};

private DatePickerDialog.OnDateSetListener DateSaadaPickerListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
        ApnaMonth = month;
        ApnaYear = year;
        ApanaDay = dayOfMonth;
        Toast.makeText(MainActivity.this, ApanaDay + "/" + ApnaMonth + "/" + ApnaYear, Toast.LENGTH_SHORT).show();
    }
};

}


Solution

  • showDialog is deprecated now. I've written the code for DatePicker and TimePicker with current time and date. Feel free to modify it.

    public void showDatePickerDialog(View v) {
        // Get Current Date or use your own Date
        final Calendar c = Calendar.getInstance();
        int mYear = c.get(Calendar.YEAR);
        int mMonth = c.get(Calendar.MONTH);
        int mDay = c.get(Calendar.DAY_OF_MONTH);
    
        DatePickerDialog datePickerDialog = new DatePickerDialog(this,
                new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year,
                                          int monthOfYear, int dayOfMonth) {
                        //get date here
                    }
                }, mYear, mMonth, mDay);
        datePickerDialog.show();
    }
    
    public void showTimePickerDialog(View v) {
        // Get Current Time or use your own Time
        final Calendar c = Calendar.getInstance();
        int mHour = c.get(Calendar.HOUR_OF_DAY);
        int mMinute = c.get(Calendar.MINUTE);
    
        // Launch Time Picker Dialog
        TimePickerDialog timePickerDialog = new TimePickerDialog(this,
                new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay,
                                          int minute) {
                        //get time here
                    }
                }, mHour, mMinute, false);
        timePickerDialog.show();
    }