
android 搜索框就是一个EditText输入控件,或者是EditText的子类
长度限制方式有以下几种:
方法一:
在 xml 文件中设置文本编辑框属性作字符数限制
如:android:maxLength="10" 即限制最大输入字符个数为10
方法二:
在代码中使用InputFilter 进行过滤
//editTextsetFilters(new InputFilter[]{new InputFilterLengthFilter(20)}); 即限定最大输入字符数为20
示例代码如下:
public class TextEditActivity extends Activity {/ Called when the activity is first created /
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
EditText editText = (EditText)findViewById(Ridentry);
editTextsetFilters(new InputFilter[]{new InputFilterLengthFilter(20)});
}
}
方法三:
利用 TextWatcher 进行限制,TextWatcher是注册一个内存输入的改变事件,当你的输入框输入字符和删除字符都会触发
实现代码如下:
package cietextEdit;import androidtextEditable;
import androidtextSelection;
import androidtextTextWatcher;
import androidwidgetEditText;
/
监听输入内容是否超出最大长度,并设置光标位置
/
public class MaxLengthWatcher implements TextWatcher {
private int maxLen = 0;
private EditText editText = null;
public MaxLengthWatcher(int maxLen, EditText editText) {
thismaxLen = maxLen;
thiseditText = editText;
}
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
Editable editable = editTextgetText();
int len = editablelength();
if(len > maxLen)
{
int selEndIndex = SelectiongetSelectionEnd(editable);
String str = editabletoString();
//截取新字符串
String newStr = strsubstring(0,maxLen);
editTextsetText(newStr);
editable = editTextgetText();
//新字符串的长度
int newLen = editablelength();
//旧光标位置超过字符串长度
if(selEndIndex > newLen)
{
selEndIndex = editablelength();
}
//设置新光标所在的位置
SelectionsetSelection(editable, selEndIndex);
}
}
}
有关EditText 即Android输入框的更多用法,建议查看官网API文档
public abstract void restartInput (InputConnection inputConnection, EditorInfo attribute)
输入法需重置时调用此方法。
通常输入焦点从一个文本框移至另一个时调用此方法。
参数
inputConnection 可选,确定与文本框通讯的输入通讯通道;如为空,你使用通常绑定的输入通讯通道。
attribute 文本框(通常是EditText)需要输入的属性
你也可以参照楼上的方法
Q: 木夕阅读手机制作如何获取读者输入的字符串 : 要获取读者输入的字符串,可以使用Android中的EditText控件。在布局文件中添加一个EditText控件,然后在代码中获取该控件的实例。可以在用户输入完成后通过监听器来获取输入的字符串。
以下是一个示例代码:
1 在布局文件中添加EditText控件```<EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容"/>```
2 在代码中获取EditText控件的实例,并添加监听器```EditText editText = findViewById(RideditText);editTextaddTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override public void onTextChanged(CharSequence s, int start, int before, int count) { // 获取用户输入的字符串 String input = stoString(); // 处理输入的字符串 // }
@Override public void afterTextChanged(Editable s) { }});```
在上面的代码中,我们使用了一个TextWatcher监听器来监控EditText中的文本变化。当用户输入内容时,onTextChanged方法会被调用,我们可以从CharSequence参数中获取用户输入的字符串,并进行处理。
以上就是关于Android 系统搜索框 如何限制输入字数长度全部的内容,包括:Android 系统搜索框 如何限制输入字数长度、android inputmethod 能获取到当前编辑控件的文本长度么、木夕阅读手机制作如何获取读者输入的字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)