1

画面に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));
}
4

2 に答える 2

1

リライト

現在のコードを見て、getDatePicker と TimePicker からのさまざまなメソッドに固執しましょう。ただし、呼び出しDateStart()たり、他のものを呼び出したりすることはありません。OnClickListener 用に設定されているように見えます...とにかく、これを試してください。

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

    // Do what you please your GlobalVariables
}

複数を省略して、日付/時刻ごとにGlobalVariables1つの値を保存することもできますが: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
}
于 2012-10-19T23:48:58.120 に答える
1

DatePicker にリスナーを設定する必要があります。

    DatePicker picker = new DatePicker(this);
    picker.init(<year>, <monthOfYear>, <dayOfMonth>, new DatePicker.OnDateChangedListener() {

        @Override
        public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            //set the value of the variable here 
        }
    }); 
于 2012-10-20T03:14:06.907 に答える