`
- 浏览:
49101 次
- 性别:
- 来自:
广州
-
方法一:
// 输入框限制输入字数
editText.addTextChangedListener(new TextWatcher() {
private CharSequence temp;
private boolean isEdit = true;
private int selectionStart ;
private int selectionEnd ;
@Override
public void beforeTextChanged(CharSequence s, int arg1, int arg2,
int arg3) {
temp = s;
}
@Override
public void onTextChanged(CharSequence s, int arg1, int arg2,
int arg3) {
}
@Override
public void afterTextChanged(Editable s) {
selectionStart = editText.getSelectionStart();
selectionEnd = editText.getSelectionEnd();
Log.i("gongbiao1",""+selectionStart);
if (temp.length() > Constant.TEXT_MAX) {
Toast.makeText(KaguHomeActivity.this,
R.string.edit_content_limit, Toast.LENGTH_SHORT)
.show();
s.delete(selectionStart-1, selectionEnd);
int tempSelection = selectionStart;
editText.setText(s);
editText.setSelection(tempSelection);
}
}
});
方法二:
利用EditText可以设置filter的特性,自定义一个LengthFilter,当输入字数超过限制时 ,做出自定义的提示
// 输入框限制输入字数
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(Constant.TEXT_MAX) {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
if (source.length() > 0 && dest.length() == Constant.TEXT_MAX) {
if ((System.currentTimeMillis() - toastTime) > interval) {
toastTime = System.currentTimeMillis();
Toast
.makeText(KaguHomeActivity.this,
R.string.edit_content_limit,
Toast.LENGTH_SHORT).show();
}
}
if (dest.toString().equals(
getResources().getString(R.string.input_default_txt))) {
Bundle data = new Bundle();
data.putCharSequence("source", source);
Message message = textHandler.obtainMessage();
message.setData(data);
message.sendToTarget();
}
return super.filter(source, start, end, dest, dstart, dend);
}
};
editText.setFilters(filters);
private Handler textHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle data = msg.getData();
CharSequence source = data.getCharSequence("source");
editText.setTextColor(Color.BLACK);
editText.setText(source);
editText.setSelection(source.length());
}
};
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Android 中 EditText 的输入字数限制 Android 中 EditText 的输入字数限制是一种常见的需求,在开发应用程序时,经常需要限制用户输入的字数,以避免用户输入过长的字符串,例如在发表评论或填写表单时。下面,...
本篇将深入探讨如何实现`Android EditText`的多行文本输入字数统计及限制功能。 首先,我们需要明白`EditText`的基本用法。它是一个可编辑的文本视图,继承自`TextView`,用户可以在其中输入、修改或删除文本。默认...
总结起来,限制`EditText`输入字数的方法主要分为监听文本变化和使用`InputFilter`两种。监听文本变化方式更灵活,可以对超出限制后的输入进行处理,如清除或提示;而`InputFilter`则在输入时直接阻止不符合规则的...
以下将详细讲解如何在Android中设置`EditText`的字数限制及显示剩余字数。 首先,我们需要在布局文件中定义`EditText`,并可以设置初始的提示文本,如“请输入内容(最多100字)”: ```xml <EditText android:id...
Android 中限制 EditText 最大输入字符数的方法 Android 中限制 EditText 最大输入字符数是 Android 开发中常见的问题,本文将详细介绍限制 EditText 最大输入字符数的三种方法。 方法一:在 xml 文件中设置文本...
本文将详细介绍如何在Android中实现`EditText`限制输入字符数的功能,并提供相应的代码示例。 首先,我们需要了解`EditText`的基本属性。`android:maxLength` 是一个内置的属性,可以用来设置`EditText`的最大字符...
2. **避免不必要的操作**:在用户持续输入时,可以只在文本变化的开始或结束时进行字数限制,而不是每次字符改变都进行。 3. **设置最大长度**:`EditText`有一个内置属性`android:maxLength`,可以用来限制用户...
本文将详细介绍如何在Android中实现`EditText`输入字数的限制。 首先,我们需要定义一个常量来表示最大允许的输入字数,例如在本例中是140个字符: ```java private static final int WEIBO_CONTENT_LENGTH_...
一个简单的小Demo,能够限制EditText的输入字符数并对用户进行提示。博客文章地址:http://blog.csdn.net/Lindroid20/article/details/56845775
Android的EditText控件是Android应用程序中最常用的输入控件之一,它允许用户输入文本信息,但是有时候我们需要限制用户输入的字数,以避免用户输入过长的文本信息。下面我们将介绍Android的EditText字数检测和限制...
总的来说,限制`EditText`输入字数是Android开发中常见的需求,可以通过多种方式实现。开发者可以根据项目需求选择合适的方法,以确保用户输入符合预期的格式。同时,良好的用户反馈也很重要,比如当达到最大输入...
以上代码展示了如何在Android应用中实现`EditText`的基本操作,包括清空内容、查看/隐藏密码、限制输入空格以及设置最大字数。这些功能在实际开发中非常常见,能提升用户体验。在`EditTextDemo`项目中,你可以找到...
在用户删除文字时,如果当前字数小于最大字数限制,应取消限制,允许用户继续输入。这就是为什么在`else`分支中,我们需要将`InputFilter`设置为空数组。 6. **代码示例**: 在`EditTextDemo`项目中,可以找到...
通过以上步骤,我们就创建了一个具有输入字数限制的自定义 `EditText`。当用户输入文字时,它会自动更新并显示剩余可输入字数。这使得用户能够清楚地知道他们的输入是否超出了限制,从而提高了用户体验。在实际项目...
做这个功能是因为开发项目的时候,由于后台接口的一些参数的值的长度有要求,不能超过多少个字符,所以在编辑框中输入的字符是要有限制的。 下面就来看一下demo的实现过程: 首先,在xml控件中放置一个EditText控件...
有时我们需要实时监听EditText中文本的变化,以便根据用户输入的内容做出响应,比如限制输入字数、格式校验等。本篇文章将详细讲解如何实现实时监听EditText文本输入的方法。 首先,我们需要创建一个TextWatcher...
通过这种方式,我们可以实现一个简单的字数限制功能,当用户在EditText中输入时,实时更新TextView显示剩余字数,并在输入超过限制时自动截断文本。这种技术在各种需要限制用户输入的应用场景中都非常有用,如评论...