android - 如何在android中使用日期时间?

标签 android eclipse html android-mediaplayer

我有android应用程序,因为我调用html文件这些文件页面之一,以便用户可以播放声音 管理声音播放时间:

星期六

周日休息

周一

等等。我的代码做得很好,但是当我管理选择输入时 打开和关闭的选项值当我关闭时它会返回到默认值 应用程序或转到另一个页面。所以问题是如何才能跟上 用户选择时第一次选择选项值? 另外,如果我想要 在特定时间播放声音:

周六

5.30am 我该怎么做?

<播放声音方法>

public class WebAppInterface    {
  Context mContext;
  public  MediaPlayer mp = null;
  public static boolean checked = false;
  /** Instantiate the interface and set the context */
  WebAppInterface(Context c) {
    mContext = c;
    mp = MediaPlayer.create(mContext,R.raw.sound);
  }


  @JavascriptInterface
    public void playsound(String value  ) {

      if (value.equals("on")){
        checked = true;

        mp.setLooping(true);
        mp.start();
      }
      else 
      {  
        checked = false;
        mp.stop();
      }
    }
}

HTML 代码:

<html>
  <form >
    <select name="flip-1" id="flip-1" data-role="slider" onchange="getAzan(this)" >
      <option value="off" >play</option>
      <option value="on">off</option>
    </select>
  </form>

  <script type="text/javascript">
    function getAzan(sel) {
      var value = sel.options[sel.selectedIndex].value; 
      Android.playsound(value); 
    }
  </script>

注意:当用户在代码中选择on值时,我确实播放了声音

最佳答案

我想说最好将这些东西保存到SharedPrefences中而不是将其存储在文件中。

使用 SharedPreferences 非常简单。当您获得值(即: onoff )时,只需打开 SharedPreferences 并将这些值放入其中即可。

private void editPlayMonday(boolean shouldIPlay) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
    prefs.edit().putBoolean("PlayMonday", shouldIPlay).commit();
}

一旦您的值就位,如果您想知道是否必须播放歌曲,只需检查 SharedPreferences,并以这种方式查看其中的内容:

private void playSong() {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
    boolean shouldIPlay = prefs.getBoolean("PlayMonday", false);//false being the default value
    if(shouldIPlay) {
        //play song or whatever
    }
}

现在,您可以在每天的首选项中有一个 bool 值,只需检查这些值在今天的日期是打开还是关闭。

希望对您有帮助!

编辑: 因此,我在上面为您提供了管理播放器以及何时需要播放声音的按键。 editPlayMonday函数可让您在需要播放声音时在应用程序上注册,并且 playSong让您检查首选项以了解是否必须播放歌曲。

现在,在您的应用程序中,您需要使用这些函数并将它们链接到 JavaScript。我会让你这样做,我很确定有很多教程和帮助(即:http://developer.android.com/guide/webapps/webview.html)

我没有详细说明的部分//play song or whatever ,在 playSong函数会更棘手一些,你应该详细说明你想用它做什么。我建议您查看AlarmManager类(class)。它可以让您轻松地从您的应用程序安排事件。请参阅the doc欲了解更多信息或此tutorial以及如何实现它。

总而言之,您需要对应用程序执行以下操作:

  • 将您的 HTML 开关链接到 Android editPlay...功能,以便您在需要播放歌曲时可以注册。
  • 当您打开网页 View 时,检查每天对应的 SharedPreference 是 true 还是 false。这样您就可以将不同的 HTML 开关修改为“打开”或“关闭”。
  • editPlay...函数,并使用 AlarmManager,您应该为第二天安排一个闹钟,该闹钟将链接到您的歌曲。请记住检查 SharedPreference 是否给定日期的 bool 值仍然为 true。您不想在错误的日子播放歌曲......

关于android - 如何在android中使用日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17406138/

相关文章:

php - file_get_contents(https ://. ..@me) : failed to open stream: HTTP request failed! HTTP/1.1 401 未经授权

使用 XML 解析在 MapView 上绘制长路径的 Android 问题

android - 重启后不触发警报

java - 我想要项目路径中 Web 内容目录中的所有文件和文件夹,仅在 Eclipse 中将它们复制到上一级是行不通的

eclipse - 如何将eclipse项目放到github上

javascript - 在 JavaScript 中查找与网页上元素最近的命名 anchor

android - 在从 url 获取的资源可绘制对象中显示标记

android - Aniqroid SlidingTray NullReferenceException?

java - 幸运游戏 GUI.. 怎么了?

javascript - 使用 Ajax 显示数据库中的数据