Можем ли мы напечатать Time Picker и Date вместе в одном приложении, используя разные целые числа в onCreateDialog? - PullRequest
1 голос
/ 04 мая 2020

пакет 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);
        }
    });
}

Проблема ниже здесь, в этой ошибке показа переопределения. Если я удаляю int hh, то ошибка отображается в DateDialogPicker. Скажите, пожалуйста, этот код неправильный или нет.

@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.

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();
    }
};

}

1 Ответ

1 голос
/ 04 мая 2020

showDialog устарела. Я написал код для DatePicker и TimePicker с текущим временем и датой. Не стесняйтесь изменять его.

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...