如何处理?缺省黑莓文本编辑框能够换行,如何才能让EditField不换行?

本文介绍了一种防止EditField自动换行的方法,通过创建定制组件并利用HorizontalFieldManager的HORIZONTAL_SCROLL样式,实现即使输入超出长度也不换行的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的解决办法:

可以设置EditField不能接受回车键,设置最大字符个数。

EditField loginIDField = new EditField("Login", "hello ", MAX_CHARS, EditField.NO_NEWLINE);

但是,如果用户敲入字符小于“最大字符个数”,但是超出EditField的长度的时候,EditField还是会自动换行。

解决办法:

创建一个定制组件,将EditField放到HorizontalFieldManager ,而HorizontalFieldManager 使用HORIZONTAL_SCROLL style可以不换行但是可以录入很多字符,即使超长也不会换行。

/* http://www.dogizmo.com/gadget/sample-code-scrollable-one-line-text-input-field */
package com.rim.samples.device.helloworlddemo;

import net.rim.device.api.system.Display;
import net.rim.device.api.ui.component.EditField;
import net.rim.device.api.ui.component.ListField;
import net.rim.device.api.ui.container.HorizontalFieldManager;

public class OneLineTextField extends HorizontalFieldManager {
private EditField _editField;

public OneLineTextField(String label, String initialValue, int maxChars, long style) {
super(HORIZONTAL_SCROLL);
_editField = new EditField(label, initialValue, maxChars, style | EditField.NO_NEWLINE | EditField.FOCUSABLE | EditField.EDITABLE);
add(_editField);
}
/*

protected void sublayout(int maxWidth, int maxHeight) {
super.sublayout(getPreferredWidth(), maxHeight );
}


public int getPreferredWidth()
{
return 200;
}
*/

public String getText() {
return _editField.getText();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值