messageContentEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable s) {
int nSelStart = 0;
int nSelEnd = 0;
boolean nOverMaxLength = false;
nSelStart = messageContentEditText.getSelectionStart();
nSelEnd = messageContentEditText.getSelectionEnd();
nOverMaxLength = (s.length() > MAX_MESSAGE_CHAR_LENGTH) ? true : false;
if (nOverMaxLength) {
Toast.makeText(MessageSendActivity.this,
"不能超过" + MAX_MESSAGE_CHAR_LENGTH + "字符!",
Toast.LENGTH_SHORT);
s.delete(nSelStart - 1, nSelEnd);
messageContentEditText.setTextKeepState(s);//请读者注意这一行,保持光标原先的位置,而 mEditText.setText(s)会让光标跑到最前面,
//就算是再加mEditText.setSelection(nSelStart) 也不起作用
}
charLeftTextView.setText("剩余:" + (MAX_MESSAGE_CHAR_LENGTH - messageContentEditText.getText().length()));
}
});
分享到:
相关推荐
最近的项目上需要限制EditText输入字符的类型,就把可以实现这个功能的方法整理了一下: 1、第一种方式是通过EditText的inputType来实现,可以通过xml或者Java文件来设置。假如我要设置为显示密码的形式,可以像...
下面我们将详细介绍如何正确地比较两个 String 是否相等、判断 EditText 输入是否为空,以及如何限定输入数字的实现。 字符串比较 在 Java 中,String 是引用类型的,而不是基本数据类型。因此,比较两个 String ...
5. **显示剩余字符数**:在EditText旁边添加一个TextView,用于显示剩余可输入的字符数。每次文本变化时更新这个值。 6. **动态记录**:维护一个变量来跟踪剩余的可输入字符数,每次输入或删除字符时更新这个变量。...
在Android开发中,`EditText` 是一个至关重要的组件,它允许用户输入文本。在涉及到金融应用或者需要处理货币数据时,我们通常希望`EditText` 只能接受特定格式的金额输入,例如限定小数点后只有两位数字。下面将...
在Android开发中,`EditText` 是一个非常重要的组件,它用于接收用户输入的文字。本教程将详细介绍如何实现`EditText`的清空、查看密码、限制输入空格以及设置最大字数的功能。 ### 1. 清空EditText内容 在用户...
3. **限制输入长度**:为了控制输入的位数,如支付宝的6位支付密码,我们可以使用`android:maxLength`属性来限定最多输入的字符数。 4. **输入验证**:对于支付密码或验证码,我们需要进行实时验证,确保输入的格式...
- **作用**:限制输入的最大字符数。 - **示例**:`android:maxLength="10"` 2. **android:singleLine** - **作用**:设置是否单行显示。 - **示例**:`android:singleLine="true"` 3. **android:password** ...
在实际开发中,结合`inputType`与其他属性,如`android:digits`(限定可输入字符集)、`android:maxLength`(限制最大长度)等,可以进一步定制EditText的行为,满足特定场景的需求。同时,对于复杂的输入验证,...
在Android开发中,EditText是一个非常重要的组件,它用于接收用户输入的数据。本篇文章将详细解析EditText的常用属性及其功能,帮助开发者更好地理解和运用这个控件。 1. `android:hint`:这个属性用来设置EditText...
- **`android:digits`**:限定输入字符集,例如`"1234567890.+-*/%()"`。 - **`android:editable`**:设置是否可编辑,`true`表示允许编辑。 - **`android:autoLink`**:自动识别并链接文本中的URL、email等,可选...
限定字数框通常指的是一个输入控件,比如文本框(TextBox),它允许用户输入一定数量的文字,但会限制超过预设字符数的输入。这种设计有助于保持数据的一致性、提高用户体验,并防止由于过长的输入导致的系统问题。 ...
【Android猜牌小游戏(改进版)】是一款基于Android平台开发的趣味性应用程序,它通过算法随机生成一个数字,用户需要在限定次数内猜出这个数字,增强了用户与手机的交互体验。这款游戏通常会包含以下几个核心知识点...
- 使用限定输入类型的`EditText`来获取数字型数据。 - **代码示例**:`main.xml`的XML布局代码。 - 设置了`android:orientation`属性用于定义组件的排列方向。 - `RadioGroup`与`RadioButton`用于性别选择。 - ...
- **描述**:限定输入的字符集,例如,仅允许数字、特定运算符或特殊字符的输入。 ##### `android:drawable*` - **描述**:支持在文本周围添加图标或图片,包括`bottom`, `left`, `right`, `top`四个方向。此外,`...
- `<activity>`标签定义了一个Activity,`android:name`属性指定Activity类的全限定名。`<intent-filter>`用于描述Activity可以响应的Intent,包括启动Action和类别Category。 3. **String.xml**: - 存放在`...
- **EditText**:输入文本。 - **库**:使用第三方库增强功能。 - **导航栏**:实现底部导航栏。 - **选取器**:选择日期和时间。 - **日期选取器**:选取具体日期。 - **时间选取器**:选取具体时间。 - **...