【问题标题】:How to create an application like Alarm in android devices?如何在 android 设备中创建类似 Alarm 的应用程序?
【发布时间】:2014-11-09 15:50:59
【问题描述】:

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

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);
}

我认为这些额外的信息很有帮助。感谢您的分析!

【问题讨论】:

    标签: android time alarm


    【解决方案1】:

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

    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();
        }
    }
    

    【讨论】:

    • 感谢您的回答,我以前做过,但我的问题是我上面写的另一个例子,请阅读并帮助我,我需要此代码。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多