我有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 非常简单。当您获得值(即: on
或 off
)时,只需打开 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/