如何在 android 设备中创建类似 Alarm 的应用程序?

Posted

技术标签:

【中文标题】如何在 android 设备中创建类似 Alarm 的应用程序?【英文标题】:How to create an application like Alarm in android devices? 【发布时间】: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);

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

【问题讨论】:

【参考方案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();
    

【讨论】:

感谢您的回答,我以前做过,但我的问题是我上面写的另一个例子,请阅读并帮助我,我需要此代码。谢谢

以上是关于如何在 android 设备中创建类似 Alarm 的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中创建类似 Android 的共享选项 [重复]

如何在 Android 中创建类似于“选项卡布局”的圆形数组?

在哪里可以找到系统映像以在 Android Studio 中创建虚拟设备

在 Android Studio 中创建新项目时如何选择目标 API 级别?

如何在 Android 中创建电视指南视图

无法在 Android 11 中创建文件夹(目录),如何创建?