2012-11-08 45 views
0

任何人都可以请我解释一下invoke方法中的参数如何正确使用。BlackBerry的对象调用(Object thiz,Object [] args)方法的用法

browserField.extendScriptEngine("interesting.test", new ScriptableFunction() { 

    public Object invoke(Object thiz, Object[] args) throws Exception { 

     Dialog.alert("Done"); 

     return super.invoke(thiz, args); 
    } 
}); 

我在HTML文件中调用上面的方法如下。

<button type="button" onclick="interesting.test()">Display Alert</button> 

当我使用以下代码

System.out.println("# thiz : " + thiz.toString()); 

结果是

[0.0] # thiz : net.[email protected]a2f32d2a 

,当我使用此代码

System.out.println("# args : " + args.length); 

结果是

[0.0] # args : 0 

在控制台上打印。

我已经在invoke方法中使用了这两个System.out方法。另外我也参考了API文档,并且仍然无法理解如何将值传递给这两个参数并检索它们。

回答

0

你可以试试这个,它为我工作

  try{ 

       browserField.extendScriptEngine("interesting.test", new ScriptableFunction() { 

       public Object invoke(Object thiz, static Object[] args) throws Exception { 

        Dialog.alert(String.valueOf(args[0]).toString()); 

       } 
       }); 

      } catch(Exception e){ 
       // 
      } 

,然后从HTML做到这一点

<button type="button" onclick="interesting.test('cool')">Display Alert</button> 

,因为这些参数是简单的数组对象可以指具有一个以上的参数同时出于灵活性目的,它的类似于在javascript中使用的参数。所以试试吧......

相关问题