Android 系统搜索框 如何限制输入字数长度

Android 系统搜索框 如何限制输入字数长度,第1张

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 能获取到当前编辑控件的文本长度么、木夕阅读手机制作如何获取读者输入的字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9499126.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存