Android中如果用户想进行对EditText的内容监听,可以通过实现TextWatcher接口进行各种操作,比如能够统计字母数字以及汉字。
要实现该接口必须重写beforeTextChanged,onTextChanged,afterTextChanged三种方法,
package com.ray.anynew;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
import com.example.edittextlistener.R;
public class MainActivity extends Activity {
private EditText input;
private TextView display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //调用布局文件
initView(); //初始化操作
}
private void initView() {
input = (EditText)findViewById(R.id.input);
display = (TextView)findViewById(R.id.display);
//设置EditText监听事件
input.addTextChangedListener(new myTextWatcher());
}
/**
*
* myTextWatcher实行TextWatcher
* 接口并重写以下三种方法
* @author anynew
*
*/
class myTextWatcher implements 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) {
//当文本正在改变时执行
}
@Override
public void afterTextChanged(Editable s) {
/* 统计字母数字个数
int count = 0;
for(int i=0;i<s.length();i++){
char cs =s.charAt(i);
if((cs>='a'&& cs<='z') || ((cs>='A'&& cs<='Z')) || ((cs>='0'&& cs<='9')) ){
count++;
}
}
display.setText("当前输入的文字个数:"+count);
*/
//统计汉字的个数
int count =0;
String Reg="^[\u4e00-\u9fa5]{1}$"; //汉字的正规表达式
for(int i=0;i<s.length();i++){
String b=Character.toString(s.charAt(i));
if(b.matches(Reg))
count++;
}
//设置文本内容
display.setText("当前输入的文字个数:"+count);
}
}
}
- 大小: 59.3 KB
分享到:
相关推荐
在`EditText`中限制数字、字母和字符的输入,主要是为了创建一个安全的密码输入框,防止用户输入不符合规则的字符。以下是一些相关的知识点: 1. **正则表达式基础**: - **字符集**:`[abc]`表示匹配a、b或c中的...
在本场景中,我们需要实现的功能是:`EditText` 只能输入6个汉字或者12个英文字母或数字。 实现这个功能,通常有两种方法:一种是通过监听`EditText`的文本变化事件,另一种是在输入时进行实时校验。下面将详细讲解...
例如,如果你只想允许数字和字母输入,可以使用以下过滤器: ```java editText.setFilters(new InputFilter[]{new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int ...
总结,Android首字母搜索功能通过合理的数据结构设计、监听用户输入、高效的搜索算法以及实时更新UI,实现了快速定位和筛选数据的目的。在实际开发中,我们还需要关注性能优化和用户体验提升,以打造更优秀的Android...
总之,Android应用中的字母自动检索功能通过结合字母排序、汉字转拼音和实时过滤,为用户提供了一种高效且直观的搜索方式。通过以上步骤,开发者可以构建出一个功能完善的搜索界面,提升应用的易用性。
以上就是Android中限制EditText输入内容为数字、字母和符号的实现方法,通过自定义EditText和重写`onCreateInputConnection()`,我们可以简洁、高效地控制用户输入。这种方法避免了在文本改变监听器中编写大量复杂的...
6. **首字母处理**: 对于中文姓名或城市名,通常需要提取首字母进行快速查找。这涉及到对汉字拼音首字母的处理,比如Jian4(简)的首字母是"J"。这个过程可能包括对全拼进行处理,得到每个汉字的首字母,然后进行...
在Android开发中,实现“通过字母汉字实现城市选择”是一个常见的功能需求,尤其在构建具有地理定位或选择服务的城市导航应用中。这个标题所描述的Demo提供了一个解决方案,让用户能够快速、直观地找到并选择所需的...
在`MainActivity`类中,有三个重要的UI组件:`EditText`(用于用户输入汉字),`Button`(触发获取首字母的事件),以及`TextView`(显示结果)。当用户点击按钮时,会触发`buttonListener`监听器。 在`onClick`...
普通车牌通常由汉字(代表省份)+字母(代表城市)+5个数字或字母组合,而新能源车牌在最后一位会有一个特殊的绿色背景的字母或数字。因此,自定义车牌输入键盘需要能够限制并引导用户按照正确的格式输入。 自定义...
本文将总结几种常见的限制Android EditText输入字符类型的方法,包括通过inputType属性的设置、android:digits属性的使用、正则表达式的应用以及InputFilter的实现。 1. 使用inputType属性限制输入类型: input...
文章结尾提到了Java代码示例,提供了一种判断字符串中是否必须包含数字、字母和中文字符的方法,并且也提供了另一种通过正则表达式在Android `EditText`中判断输入字符串的方法。最后,文章鼓励读者参考这些方法,并...
此外,根据Android的EditText控件输入内容的不同需求,我们可以使用正则表达式和Pattern、Matcher类来验证输入的是数字、字母还是中文字符。以下是如何实现这些验证的示例代码: ```java String txt = edInput....
通过以上步骤,你可以成功地在Android应用中实现ListView的A-Z字母排序、过滤搜索功能以及汉字转拼音。这种方法可以提高用户的交互体验,使得大量的汉字数据更容易查找和浏览。记得在实际项目中,还要考虑到性能优化...
在Android开发中,实现通讯录功能是常见的需求之一,其中包括对联系人的展示、字母排序以及搜索过滤等功能。本文将详细讲解如何在Android中实现这样一个功能丰富的通讯录应用。 首先,我们需要获取设备上的通讯录...
5. `android:textColor`:这个属性定义了EditText中文字的颜色,例如`android:textColor="#ff8c00"` 将设置字体颜色为橙色。 6. `android:textStyle`:可以设置字体样式,包括`bold`(粗体),`italic`(斜体)和`...