BlackBerry 10开关开关案例

时间:2013-08-20 12:47:37

标签: c++ qml blackberry-10 blackberry-cascades

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

例如:

switch(?){                                    
     case button_addition:

     case button_minus:  

     case button_multiplication:

     case button_division:                                     
}

其中button_additionbutton_minusbutton_multiplicationbutton_division是按钮的ID。

如何获取这些按钮的ID?

3 个答案:

答案 0 :(得分: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的开关字符串。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

在QML中很容易,你可以创建一个JS函数,它将点击的按钮ID作为输入参数,并根据该参数进行切换。您需要调用此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");
     }
}