- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有 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关于如何实现它。
总而言之,您需要对您的应用程序做什么:
editPlay...
功能,以便您可以在需要播放歌曲时进行注册。editPlay...
功能,并使用 AlarmManager,您应该为第二天安排一个闹钟,它将链接到您的歌曲。如果给定日期的 bool 值仍然为真,请记住检查 SharedPreference。您不想在错误的一天播放歌曲...关于android - 如何在android中使用日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17406138/
我是一名优秀的程序员,十分优秀!