2013-06-24 55 views
0

我已经创建了我的Android应用程序,因为它播放声音时更改选择输入选项。我创建了我的界面来调用android方法html。我做了我的代码,但是当我将选项值更改为时,它不起作用所选输入不适用于Android

播放声音的方法:

public void playsound(String value) { 
    if (value == "on") { 
    mp= MediaPlayer.create(mContext,R.raw.sound); 

    /* mp.prepare();*/ 
    mp.start(); 
    } 
} 

<form >  
     <select name="flip-1" id="flip-1" data-role="slider" > 
     <option value="off">Off</option> 
     <option value="on" onclick="playmp3('on')">On</option> 
     </select> 

<script type="text/javascript"> 
     function playmp3(var value) { 
     Android.playsound(value); 
     } 
</script> 

</form > 

回答

0

我想你应该在select元素,而不是在option元素onclick事件中使用onchange事件。

<select name="flip-1" id="flip-1" data-role="slider" onchange="f1()"> 
     <option value="off">Off</option> 
     <option value="on" onclick="playmp3('on')">On</option> 
</select> 

<script type="text/javascript"> 
    function f1(){ 
     var myselect = document.getElementById("flip-1"); 
     playmp3(myselect.options[myselect.selectedIndex].value); 
    } 
</script> 

此外,你必须在你的JavaScript方法错误,var关键字是没有必要的:

function playmp3(value) { 
     Android.playsound(value); 
} 
+0

它的工作,但默认值“上”只有它会工作,我需要用户将选择 – egydeveloper

+0

@egydeveloper你是什么意思?监听器函数必须检查内部选项的值并调用'playmp3'。我已更新我的答案以反映此行为... –

0

试试这个:

if (value.equals("on")) { 
mp= MediaPlayer.create(mContext,R.raw.sound); 

/* mp.prepare();*/ 
mp.start(); 
} 

HOWTO通话的Android方法从JS来看看这个链接:

Call Android method from JS

+0

它不也工作我试图调用的方法没有价值,但它没有工作 – egydeveloper

+0

是JavaScriptInterface的playSound部分吗?无论如何...值==“on”不能工作。您必须将其更改为equals(“on”)。用==比较对象引用而不是字符串的值。 –

0
if (value.equals("on")) 
{ 
    //Your code 
} 
+0

在回答之前阅读现有答案... –

相关问题