java - 如何动态更改工具栏命令文本

标签 java codenameone

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

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

最佳答案

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

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

关于java - 如何动态更改工具栏命令文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34740007/

相关文章:

java - 代号一 : how to use existing gif as loading animation when calling web service

codenameone - 测试 CN1 应用程序的建议和经验

java - codenameone 日历组件的生命周期是什么?

java - 从java程序运行一个jar文件

java - 使用异常处理初始化接口(interface)中的静态字段

java - 获取 org.hibernate.InvalidMappingException : unable to read xml when I try to run my program

java - 将自定义身份验证包装到 Spring 安全性中的最简单方法?

android - codenameone 和 Opentok native 接口(interface)

java - 构建 Codename One 应用程序时的跨平台 Google+ 登录 API key

java - 安卓.view.InflateException : Binary XML file line #6: Error inflating class fragemnt