栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Blackberry中的AutoCompleteField上放置占位符文本

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Blackberry中的AutoCompleteField上放置占位符文本

您可以对普通EditField使用与此处所示类似的技术。基本上,您需要重写子类中的

paint()
方法
AutoCompleteField
。在中
paint()
,检查并查看该字段是否为空,如果是,则手动绘制所需的
占位符 文本。

不同的是,

AutoCompleteField
Manager
BasicEditField
它的内部。因此,要正确绘制文本,您需要找出父级
Manager
AutoCompleteField
)内编辑字段的x和y偏移量。

因此,将您的

AutoCompleteField
实例替换为此类的实例:

   private class CustomAutoCompleteField extends AutoCompleteField {      private int yOffset = 0;      private int xOffset = 0;      public CustomAutoCompleteField(BasicFilteredList filteredList) {         super(filteredList);      }      protected void paint(Graphics g) {         super.paint(g);         if (xOffset == 0) { // initialize text offsets once xOffset = getEditField().getContentLeft(); yOffset = getEditField().getContentTop();         }         String text = getEditField().getText();         if (text == null || text.length() == 0) { int oldColor = g.getColor(); g.setColor(Color.GRAY); g.drawText("enter text", xOffset, yOffset); g.setColor(oldColor);         }      }      public void onSelect(Object selection, int SELECT_TRACKWHEEL_CLICK) {         ListField _list = getListField();         if (_list.getSelectedIndex() > -1) { if(selectedText!=null){    BasicFilteredListResult result = (BasicFilteredListResult) selection;    selectedText.setText(result._object.toString()); }         }      }   }

我在OS
5.0上进行了测试,该实例没有设置任何边距或填充。对于不同的布局,可能需要调整用于计算x和y偏移量的逻辑。但是,上面的代码向您展示了基本思想。祝好运。

编辑:
以上代码带有警告,您的

onSelect()
方法显然依赖于未显示的代码。照原样,上面的代码将无法编译。我留在这里
onSelect()
只是为了表明我实际上是在替换您最初拥有的匿名类,并且在您的
onSelect()
方法上没有做任何不同的事情,因为它与占位符文本问题没有直接关系。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455217.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号