0

我正在 BlackBerry 10 中开发一个计算器应用程序,为此我使用 switch case 来获取按钮 ID,但我不知道如何获取 switch case 中按钮的 ID。

例如:

switch(?){                                    
     case button_addition:

     case button_minus:  

     case button_multiplication:

     case button_division:                                     
}

其中button_additionbutton_minus和是按钮的 ID button_multiplicationbutton_division

如何获取这些按钮的 ID?

4

3 回答 3

1

我不确定您是否可以获得这样的 ID,我可以建议您在按钮中定义自定义属性,并将其传递给按钮单击事件。然后您可以使用该属性来识别事件。

喜欢以下

Button{
    id: button_Addidtion
    property var customId: 1 // for addition
    onClick:{
         handleOperation(customId);
    }
}

function handleOperation(id) {
    switch(id) {
        case 1://addition
        break;
    }
}

如果您不想定义自定义属性,那么也许您可以使用 objectName 属性来识别按钮,我不确定您是否可以使用带有 JS 开关的字符串。

于 2013-08-20T14:13:49.430 回答
0

我建议您查看包含按钮的容器。在许多窗口系统中,容器具有“for each”方法,您可以在其中提供对每个按钮进行操作的函数。

或者当按下(或单击)按钮时,检查消息。许多窗口消息包含发送消息的小部件的 ID。

于 2013-08-20T13:24:48.840 回答
0

在 QML 中很容易,您可以创建一个 JS 函数,该函数将单击的按钮 ID 作为输入参数,并根据该参数执行 switch case。您需要调用此 JS 函数并在按钮单击信号上传递按钮 ID。

function handleMultiButton(buttonID) {
    switch(buttonID) {
        case "button_Addidtion": //Do Something
        break; 
        case "button_division":  //Do Something
        break;
    }
 }

Button{
    id: button_Addidtion
    onClick:{
        handleMultiButton("button_Addidtion");
    }
} 

Button{
     id: button_division
     onClick:{
        handleMultiButton("button_division");
     }
}

等等

于 2013-08-28T18:11:43.320 回答