黑莓,点击标签时拨打电话

时间:2012-08-15 08:53:42

标签: blackberry java-me

我需要制作一个包含可点击数字的标签,这样当用户点击标签时,就会调用电话号码(或者向用户显示呼叫选项)。当我点击标签时,我只是得到一个工具提示类型的菜单,可以选择复制数字......

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;
        }

    };

3 个答案:

答案 0 :(得分:2)

我认为执行流程没有输入您的navigationClick()方法,因此您可以获得工具提示而不是想要的功能。

似乎点击事件未到达您的标签实例,之前已被消耗。例如,通过容器类实例(屏幕/管理器)。

检查容器屏幕类/经理实例的naviagationClick()方法,确保标签实例获得点击事件。

答案 1 :(得分: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时间参数

答案 2 :(得分:2)

一条建议。您不应使用navigationClick()来处理点击。改为覆盖navigationUnclick()方法并处理Unclick。

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

  2. 如果您对navigationClick()采取了一些更改焦点的操作 - 例如按下新屏幕,则会在焦点的新字段上调用navigationUnclick。如果该字段是按钮,则会单击该按钮。

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