如何在Android设备中创建像Alarm这样的应用程序?

时间:2014-11-09 15:50:59

标签: android time alarm

我想创建在其中设置警报的应用程序(我写它),但我的问题是我怎样才能在TextView中继续显示时间直到闹钟时间?(我的意思是如果按下后退,应用程序是重新打开,此TextView显示闹钟时间)。 例如现在时间是11:38 AM,我在15:13设置了一个警报,我有一个TextView,它的keeos用这种方法显示闹钟时间(15:13),但现在我的问题是我怎么能显示这个文本(即使我退出应用程序)直到15:13 o'时钟之后显示" +"。 将时间转换为文本视图的方法(仅供参考):

private String convertTimeToString(long time) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(time);

    int hour = calendar.get(Calendar.HOUR);
    int minute = calendar.get(Calendar.MINUTE);

    String timeSet;
    if (hour > 12) {
        hour -= 12;
        timeSet = "PM";
    } else if (hour == 0) {
        hour += 12;
        timeSet = "AM";
    } else if (hour == 12) {
        timeSet = "PM";
    } else {
        timeSet = "AM";
    }

    String minutes;
    if (minute < 10) {
        minutes = "0" + minute;
    } else {
        minutes = String.valueOf(minute);
    }
    // Append in a StringBuilder
    return String.format("%s:%s %s", hour, minutes, timeSet);
}

我认为这些额外的信息是有帮助的。谢谢你的回应!

1 个答案:

答案 0 :(得分:2)

您必须将警报时间保存在某种数据存储中。 请在此处查看数据存储选项:

http://developer.android.com/guide/topics/data/data-storage.html

我认为,“SharedPreferences”是最适合您的。 略微改变官方示例代码,你会想要这样的东西:

public class Calc extends Activity {
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
       super.onCreate(state);
       . . .

       // Restore preferences
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       String time = settings.getString("alarm_time", "12:00");
       mAlarmTextField.setText(time);
    }

    @Override
    protected void onStop(){
       super.onStop();

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putBoolean("alarm_time", mAlarmTextField.getText().toString());

      // Commit the edits!
      editor.commit();
    }
}