使用按钮触发警报

时间:2011-11-25 17:54:25

标签: android button alarm android-intent

所以我想使用一个按钮来引导一个新的活动,它可以在两个整数(小时和分钟)之间进行选择而不是设置警报。或者也许做一些不同的事情来获取这些int的价值并改变它们?有没有更好的方法来编码呢?

到目前为止,我的代码就是这样 - 我到目前为止做得对吗?

public class AlarmPtest extends Activity implements  android.view.View.OnClickListener{
/** Called when the activity is first created. */

Button SetAlarm, SetTimer;
int hours = 1, min = 30;

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

}


private void AlarmClock() {
    // TODO Auto-generated method stub
    Intent i = new Intent(android.provider.AlarmClock.ACTION_SET_ALARM);
    i.putExtra(android.provider.AlarmClock.EXTRA_HOUR, hours);
    i.putExtra(android.provider.AlarmClock.EXTRA_MINUTES, min);
    startActivity(i);

}


private void Vars() {
    // TODO Auto-generated method stub
    SetAlarm = (Button) findViewById(R.id.SetAlarm);
    SetTimer = (Button) findViewById(R.id.TimerAlarm);

    SetAlarm.setOnClickListener(this);
    SetTimer.setOnClickListener(this);
}


public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()){
    case R.id.SetAlarm:
        Toast alarmToast = Toast.makeText(this, "you click alarm", Toast.LENGTH_LONG);
        alarmToast.show();
        AlarmClock();
     case R.id.TimerAlarm:
        Toast TimerToast = Toast.makeText(this, "you get 15 min", Toast.LENGTH_LONG);
        TimerToast.show();
        hours = 0 ;
        min = 15;
        AlarmClock();
    }
}

}

2 个答案:

答案 0 :(得分:1)

您的代码是正确的,因为您的小时和分钟将在警报意图中显示。如果用户拥有Android SDK> = 9

,则会设置闹钟

BTW中的一个常见代码约定,即Android,是编写以smallLetters开头的函数名。因此,将您的功能更改为:

private void alarmClock()
private void vars()

否则,人们可能会得到您引用课程的印象。变量名称使用相同的约定,因此您还需要更改按钮:

Button setAlarm, setTimer;

答案 1 :(得分:0)

您可能希望使用TimePicker。这为选择报警时间提供了一个很好的界面。它出现在AlertDialog类型的界面中,因此您无需启动新的Activity来选择时间。