Android:DatePicker 和 DatePicker 对话框

标签 android android-datepicker

我在选项菜单上有这段代码

Dialog dialog = new Dialog(ScheduleActivity.this);
dialog.setTitle("Add Event");
dialog.setContentView(R.layout.add_even_on);
Button datePicker = (Button) dialog.findViewById(R.id.datePicker);
final DialogFragment dateFrag = new MyDatePicker();
    datePicker.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                dateFrag.show(getSupportFragmentManager(), "datePicker");               
            }
        });
dialog.show();

当单击选项菜单上的“添加事件”时,会出现一个对话框,其中一个按钮显示一个DatePickerDialog,旁边是一个TextView,反射(reflect)在 DatePickerDialog 中选择的日期,这是我从 Androids Developer 那里获得的关于如何使用 DatePickerDialog 的类(class)。

class MyDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener {
 int pYear;
 int pDay;
 int pMonth;

@Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the current date as the default date in the picker
    final Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int day = c.get(Calendar.DAY_OF_MONTH);

    // Create a new instance of DatePickerDialog and return it
    return new DatePickerDialog(getActivity(), this, year, month, day);
  }

  public void onDateSet(DatePicker view, int year, int month, int day) {
    pYear = year;
    pDay = day;
    pMonth = month;
  }
}

所以我的问题是,当我在 DatePickerDialog 上单击“设置”时,我如何获得以毫秒为单位的值,而 DatePickerDialog 又会自动关闭它,并返回到我的对话框,其中包含打开 DatePickerDialog 的按钮和反射(reflect)的 Textview在 DatePickerDialog 中选择了所有日期...我不会显示我在 DatePickerDialog 中选择的那个...

这是我的意思的图片,

因此,当我单击“选择日期”按钮时,会出现一个 DatePickerDialog 框,如下图所示 enter image description here

enter image description here

当我点击设置时,我想考虑 DatePickerDialog 的毫秒值

最佳答案

旧对话框已弃用。实现 fragment :

将您的 Activity 迁移到 Fragment Activity:

public class YourActivity extends FragmentActivity 

创建 fragment 对话框:

public class TimePickerFragment extends DialogFragment {

    private OnDateSetListener listener;

    public TimePickerFragment(OnDateSetListener listener) {
        this.listener=listener;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current time as the default values for the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        // Create a new instance of TimePickerDialog and return it
        return new DatePickerDialog(getActivity(), listener, year,month,day);
    }

}

实现接口(interface)(包:import android.app.DatePickerDialog.OnDateSetListener):

public class YourActivity extends FragmentActivity implements OnDateSetListener{

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {

    }

}

添加显示对话框功能:

public class YourActivity extends FragmentActivity implements OnDateSetListener{

    showDateDialog(){

        FragmentManager fm = getSupportFragmentManager();
        TimePickerFragment newFragment = new TimePickerFragment(this);
        newFragment.show(fm, "date_picker");

    }

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {

    }

}

关于Android:DatePicker 和 DatePicker 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11895606/

相关文章:

android - Android 中的 DatePicker 日历 View

Android:将日期和时间的值合并为一个值

c# - 如何从 Xamarin.Forms 中的可移植类库项目调用位于 Android 项目内部的方法?

java - 具有自定义值的 DatePickerDialog

android - android 5 lollipop 中的日期选择器对话框问题

android - 如何使用BindingAdapter和android Mvvm在edittext中显示日期并通过datepicker更新日期

Android:从标记点获取最近的街道

android - 在 android 中使用 recyclerView 进行分页

java - 将图像上传到 Firebase 存储

Android Studio 导入Eclipse项目