DatePicker和TimePicker

DatePicker和TimePicker

我在屏幕上有2个日期选择器和2个时间选择器,还有一个提交按钮。用户选择开始日期,开始时间,结束日期和结束时间。然后,程序将这些值存储到变量中,但是变量仅返回这些控件的默认值。无论如何,是否需要从每个控件中获取更新的值?

对于编辑屏幕,我的代码如下所示:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.editscreen);

    timepickerStart = (TimePicker)findViewById(R.id.timePicker1);
    timepickerEnd = (TimePicker)findViewById(R.id.timePicker2);
    datepickerStart = (DatePicker)findViewById(R.id.datePicker1);
    datepickerEnd = (DatePicker)findViewById(R.id.datePicker2);

    submitbutton = (Button)findViewById(R.id.submit);

    locationText = (EditText)findViewById(R.id.locationText);
    eventText = (EditText)findViewById(R.id.eventText);

}

public void DateStart(View v)
{
    GlobalVariables.datepickerYearStart = datepickerStart.getYear();
    GlobalVariables.datepickerMonthStart = datepickerStart.getMonth();
    GlobalVariables.datepickerDayStart = datepickerStart.getDayOfMonth();
}

public void DateEnd(View v)
{
    GlobalVariables.datepickerYearEnd = datepickerEnd.getYear();
    GlobalVariables.datepickerMonthEnd = datepickerEnd.getMonth();
    GlobalVariables.datepickerDayEnd = datepickerEnd.getDayOfMonth();
}

public void TimeStart(View v)
{
    GlobalVariables.timepickerHourStart = timepickerStart.getCurrentHour();
    GlobalVariables.timepickerMinuteStart = timepickerStart.getCurrentMinute();
}

public void TimeEnd(View v)
{
    GlobalVariables.timepickerHourEnd = timepickerEnd.getCurrentHour();
    GlobalVariables.timepickerMinuteEnd = timepickerEnd.getCurrentMinute();
}

public void submitClicked(View v)
{

    startActivity(new Intent(this, AddToCalendar.class));
}

最佳答案

改写

查看当前代码,让我们继续使用DatePicker和TimePicker中的各种get方法。但是,您永远不会调用DateStart()或任何其他命令,它们看起来像您为OnClickListener设置了它们……无论如何,请尝试以下操作:

public void submitClick(View v) {
    DateStart(null);
    TimeStart(null);
    DateEnd(null);
    TimeEnd(null);

    // Do what you please your GlobalVariables
}




尽管我可能会省略多个GlobalVariables并为每个日期/时间存储一个long值:

public void submitClick(View v) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(datepickerStart.getYear(), datepickerStart.getMonth(),
                 datepickerStart.getDayOfMonth(), timepickerStart.getCurrentHour(),
                 timepickerStart.getCurrentMinute(), 0);
    long startTime = calendar.getTimeInMillis();

    // And similar approach for the end time, then use them however you please
}

关于android - 从DatePicker和TimePicker获取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12983886/

10-10 01:42