2012-08-15 63 views
2

我需要制作一个包含可点击数字的标签,以便当用户单击标签时调用一个电话号码(或向用户显示呼叫选项)。当我点击标签,目前,我只是得到一个提示一种菜单中的选项来复制数...blackberry,当点击标签时拨打电话

private LabelField contactPhoneNumberField = new LabelField(number,Field.FOCUSABLE) 
{ 
     protected boolean navigationClick() 
     { 
      // write your code on click 
      // make the call 
      PhoneArguments callArgs = new PhoneArguments(
       PhoneArguments.ARG_CALL, number); 
      Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs); 
      return true; 
     } 

    }; 

回答

2

我认为,执行流不会进入你的navigationClick()方法,并且由于这个事实你会得到工具提示而不是想要的功能。

似乎点击事件没有到达您的标签实例,并且之前已被使用。例如通过容器类实例(屏幕/管理器)。

检查naviagationClick()容器屏幕类/管理器实例的方法,并确保您的标签实例获取单击事件。

2
final LabelField contactPhoneNumberField = new LabelField("",Field.FOCUSABLE) { 
public boolean navigationClick (int status , int time){ 
    PhoneArguments callArgs = new PhoneArguments(
    PhoneArguments.ARG_CALL, number); 
    Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs); 
    return true; 

} };

玩弄了一会儿就变成了后,我需要添加INT状态和INT时间参数

+0

是的,因为否则你没有重写navigationClick()方法,而是创建了一个具有不同签名的新方法。 – 2012-08-15 12:34:47

+0

卡尔,你可以标记这个答案作为解决方案(通过点击答案旁边的小“V”图标接受)?这样,我们知道你不需要任何帮助。谢谢。 – Nate 2012-08-15 23:47:18

2

一个忠告。您不应该使用navigationClick()来处理点击。重写navigationUnclick()方法,并处理Unclick。

  1. 这符合标准的用户界面行为。几乎所有的本地字段,如按钮,黑莓手机上的列表字段,都会在不点击的情况下执行操作。即使窗口上的按钮和链接也遵循相同的概念。

  2. 如果您对更改焦点的navigationClick()进行了一些操作,例如推新屏幕,则会在焦点处的新焦点上调用navigationUnclick。如果该字段是一个按钮,该按钮将被点击。

  3. 如果焦点没有改变,那么navigationUnclick()将返回未处理的。这将导致屏幕的navigationUnclickUnhandled()将显示“工具提示类型的菜单”。