【问题标题】:How to dynamically change toolbar command text如何动态更改工具栏命令文本
【发布时间】:2016-01-12 21:49:03
【问题描述】:

我有一个带有工具栏的表单,它的右侧有一个“保存”命令。当用户单击它时,我希望它更改为“已保存”,显然,当对表单进行更改时,我需要它恢复到原始的“保存”状态。这应该很简单,但是我被卡住了,无法更改命令文本;我尝试设置文本并刷新/重新验证,但没有运气。非常感谢您的帮助。

           Command saveCMD = new Command("SAVE") {
                @Override
                public void actionPerformed(ActionEvent evt)           
               {                                
                  Display.getInstance().vibrate(100);
                  doSavingMethod();
                  //change command text to SAVED
               };
             };
             saveCMD.putClientProperty("uiid", "SaveCommand");
             toolbar.addCommandToRightBar(saveCMD);

【问题讨论】:

    标签: java codenameone


    【解决方案1】:

    解决此问题的最佳方法是将您的命令声明为变量,并在每次您想要更改它时为其分配新值。

    private Command saveCMD = new Command("");
    
    ...
    
    final Command afterSaveCmd = new Command("SAVED") {
        @Override
        public void actionPerformed(ActionEvent evt) {                                
            //What saved command should do, if any.
        };
    };
    
    saveCMD = new Command("SAVE") {
        @Override
        public void actionPerformed(ActionEvent evt) {                                
            Display.getInstance().vibrate(100);
            doSavingMethod();
            saveCMD = new Command("SAVED");
            //OR 
            saveCmd = afterSaveCmd;
            saveCMD.putClientProperty("uiid", "SaveCommand");
            form.removeCommand(saveCMD);
            toolbar.addCommandToRightBar(saveCMD);
            //form.revalidate();
        };
    };
    saveCMD.putClientProperty("uiid", "SaveCommand");
    toolbar.addCommandToRightBar(saveCMD);
    

    【讨论】:

    • 我将我的 saveCMD 和 afterSaveCmd 命令都声明为变量,并使用:saveCmd = afterSaveCmd; form.revalidate(); 就像您发布的代码一样,但命令文本没有改变。有什么我想念的吗?感谢您的帮助。
    • 我设法让它工作,需要一些额外的代码:form.removeCommand(saveCMD); saveCMD = afterSaveCmd; saveCMD.putClientProperty("uiid", "SaveCommand"); toolbar.addCommandToRightBar(saveCMD); toolbar.revalidate();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多