Codenameone 自定义搜索筛选器和日历代号1
我有一个搜索字段,但我想自定义它显示的文本提示,如“搜索”,我想将其更改为我的语言,即“Busca”,如何在下面的代码中执行此操作:Codenameone 自定义搜索筛选器和日历代号1,codenameone,Codenameone,我有一个搜索字段,但我想自定义它显示的文本提示,如“搜索”,我想将其更改为我的语言,即“Busca”,如何在下面的代码中执行此操作: Container list = new Container(); hi.getToolbar().addSearchCommand(e -> { String text = (String)e.getSource(); if(text == null || text.length() == 0) { // clear sea
Container list = new Container();
hi.getToolbar().addSearchCommand(e -> {
String text = (String)e.getSource();
if(text == null || text.length() == 0) {
// clear search
for(Component cmp : list) {
cmp.setHidden(false);
cmp.setVisible(true);
}
hi.getContentPane().animateLayout(150);
} else {
text = text.toLowerCase();
for(Component cmp : list) {
Button mb = (Button)cmp;
String line1 = mb.getText();
boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1;
mb.setHidden(!show);
mb.setVisible(show);
}
hi.getContentPane().animateLayout(150);
}
}, 4);
String lang = L10NManager.getInstance().getLanguage();
if(lang != null) {
lang = lang.toLowerCase();
switch(lang) {
case "en":
UIManager.getInstance().setBundle(theme.getL10N("portuguese", "pt"));
break;
}
}
顺便问一下,我该如何设置一个以本地语言显示的日历的代码名
编辑:
我看了教程,但我有问题,我想我没有正确设置,看:
这就是我想要改变的:
我应该这样做吗
hi.putClientProperty("Search", hi.getToolbar());
我的代码如下:
Container list = new Container();
hi.getToolbar().addSearchCommand(e -> {
String text = (String)e.getSource();
if(text == null || text.length() == 0) {
// clear search
for(Component cmp : list) {
cmp.setHidden(false);
cmp.setVisible(true);
}
hi.getContentPane().animateLayout(150);
} else {
text = text.toLowerCase();
for(Component cmp : list) {
Button mb = (Button)cmp;
String line1 = mb.getText();
boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1;
mb.setHidden(!show);
mb.setVisible(show);
}
hi.getContentPane().animateLayout(150);
}
}, 4);
String lang = L10NManager.getInstance().getLanguage();
if(lang != null) {
lang = lang.toLowerCase();
switch(lang) {
case "en":
UIManager.getInstance().setBundle(theme.getL10N("portuguese", "pt"));
break;
}
}
我有个例外:
java.lang.NullPointerException
at com.consultaprodutos.AplicacaoPrincipal.init(AplicacaoPrincipal.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.codename1.impl.javase.Executor$1$1.run(Executor.java:118)
at com.codename1.ui.Display.processSerialCalls(Display.java:1129)
at com.codename1.ui.Display.mainEDTLoop(Display.java:924)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
OBS:我在项目属性中找不到VM选项,无法设置-Defuser.language=pt签出。其要点是创建一个资源包并安装它,然后所有内容都会自动更新为新的本地化文本
键与文本匹配,因此如果文本为“搜索”,只需将“搜索”添加到资源包和翻译值。编辑了我的问题,我想我遗漏了一些内容。第76行是什么?您正在使用哪个ide?Eclipse,在第76行中有
UIManager.getInstance().setBundle(theme.getL10N(“葡萄牙语”、“pt”)
看起来主题
为空。如何初始化它?我通过UIManager.initNamedTheme(“/theme”,“Business”)初始化它代码>