我在选项菜单上有这段代码
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 框,如下图所示
当我点击设置时,我想考虑 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/