2012-02-16 9 views
2

私はアンドロイドで簡単な目覚まし時計を作っています。私はいつでもアラームを設定したいですが、どうすればいいのか分かりません。 私はtimepickerを持つレイアウトを持っていますが、今このコード行からalarmManager.set(AlarmManager.RTC_WAKEUP、System.currentTimeMillis()+(5 * 1000)、sender); 私はタイムピッカーからレイアウトから選択した自分の時間を作っています。 私はtimepicker TimePicker Android

TimePicker addtime; 
ddtime = (TimePicker) findViewById(R.id.addtime); 

参照されているどのように実際にtimepickerにある値の時間を取得するには?

+0

また、警報が来るべき時と分け前を何度もすることができますか? – Samuel

答えて

0

おそらくTimePickerDialogが必要です。 )(onCreateDialogで

Button timeButton = (Button) findViewById(R.id.time_entry_button); 
    timeButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      showDialog(TIME_DIALOG_ID); 
     } 
    }); 

:のonCreateで

private TimePickerDialog.OnTimeSetListener mTimeListener = 
    new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int hour, int minute) { 
      mHour = hour; 
      mMinute = minute; 
      updateDisplay(); 
     } 
    }; 

():

は、あなたのクラスで定義されたリスナーが必要

updateDisplayは、()メソッドである
switch (id) { 
     case TIME_DIALOG_ID: 
      return new TimePickerDialog(this, mTimeListener, mHour, mMinute, true); 

    } 

あなたのクラスでは、ユーザーが時間を選択したときに呼び出されます。

+0

いいえ、私は単にTimePickerの価値を何も得たくなく、アラームを5秒ごとに通知するようにしています。希望の時間にどうすればいいですか? – Samuel

+0

ダイアログ部分をスキップしてTimePickerウィジェットをビューに追加することができます。TimePickerウィジェットはOnTimeChangedListenerをサポートしています。この問題は、ウィジェットが変更されるたびに発生し、変更が最終的な変更であるかどうかを知ることは困難です。別の "Set Alarm"ボタンを追加して、ユーザーがボタンを選択したときにmTimePicker.getCurrentHour()およびmTimePicker.getCurrentMinute()を呼び出すこともできます。残念なことに、あなたがウィジェットまたはダイアログを使用するかどうかは、時間と分だけサポートされ、秒ではありません。 – Aaron

0

コードは上のようにonTimeSet()メソッドで必要なコードを実装するだけでいいと思います。あなたは、文字列timeStringを取得し、その後、ボタンにその文字列を設定する一般的な一例を以下に示します -

private TimePickerDialog.OnTimeSetListener mTimeListener = 
    new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int hour, int minute) { 
      updateTime(hour, minute); 
     } 
    }; 

public void updateTime(int hour, int minute) { 
     String timeString = new StringBuilder().append(String.valueOf(hour)) 
        .append(":").append(String.valueOf(minute)).ToString(); 
     btnEventTimeFrom.setText(timeString); 
     } 
1

あなたが必要なもの、あなたが後で使用するためにいくつかの変数にしたいデータを保存することです。 Androidのは、あなたが使用できることをTimePickerDialogとDatePickerDialogを持っています

// the callback received when the user "sets" the date in the dialog 
private DatePickerDialog.OnDateSetListener mDateSetListener = 
     new DatePickerDialog.OnDateSetListener() { 

      public void onDateSet(DatePicker view, int year, 
            int monthOfYear, int dayOfMonth) { 
       mYear = year; 
       mMonth = monthOfYear; 
       mDay = dayOfMonth; 
       updateDisplay(); 
      } 
     }; 

// the callback received when the user "sets" the time in the dialog 
private TimePickerDialog.OnTimeSetListener mTimeSetListener = 
    new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      mHour = hourOfDay; 
      mMinute = minute; 
      updateDisplay(); 
     } 
    }; 

は、あなたが2つのダイアログを使用したい場合は、それぞれに異なるIDを持っている必要がありますことを忘れないでください。