AndroidEditText校验 只输入数字或特定字符
2016-08-06 18:50
162 查看
EditText的layout设置大家都知道就不累赘了,这里主要说怎么设置输入限制。
EditText的属性里面已经封装好了相关的设置,上一篇文章里面也提到了,不熟悉的可以去查看上一篇EditText属性大全,这里着重讲输入限制的属性:
android:digits="1234567890.+-*/%\n()"
限制输入框中只能输入自己定义的这些字符串 如果输入其它将不予以显示
android:phoneNumber="true"
限制输入框中只能输入手机号码
android:password="true"
限制输入框中输入的任何内容将以"*"符号来显示
android:hint="默认文字"
输入内容前默认显示在输入框中的文字
android:textColorHint="#FF0000"
设置文字内容颜色
android:enabled="false"
设置输入框不能被编辑
如果还有一些特殊的限制,比如我做一个项目只能输入数字,且输入0之后再输入1,则只显示1,这就需要单独去进行设置了,也非常的简单。
给EditText添加一个监听事件,当检测到里面的内容变化以后,根据需求,修改相关的内容就可以了。
使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听,TextWatcher是一个接口类,所以必须实现TextWatcher里的抽象方法:
当EditText里面的内容有变化的时候,触发TextChangedListener事件,就会调用TextWatcher里面的抽象方法。
public class MainActivity extends Activity
{
private EditText text;
String str;
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (EditText)findViewById(R.id.text);
text.addTextChangedListener(textWatcher);
}
private TextWatcher textWatcher = new TextWatcher()
{
@Override
public void afterTextChanged(Editable
s) {
// TODO Auto-generated method stub
Log.d("TAG","afterTextChanged--------------->");
}
@Override
public void beforeTextChanged(CharSequence
s, int start, int count,
int after)
{
// TODO Auto-generated method stub
Log.d("TAG","beforeTextChanged--------------->");
}
@Override
public void onTextChanged(CharSequence
s, int start, int before,
int count)
{
Log.d("TAG","onTextChanged--------------->");
str = text.getText().toString();
try {
//if ((heighText.getText().toString())!=null)
Integer.parseInt(str);
} catch (Exception e) {
// TODO: handle exception
}
}
};
}
该方法可以监听到Edittext的变化,我在onTextChanged里面监听s值得变化,然后做修改以后再setText到EditText里面,不过这时候经常会遇见光标跑到最前面的情况,很恶心,随意每次setText的时候都需要用ev.setSelection(str.length())去重新设置光标位置为str字符串的最后。
EditText的属性里面已经封装好了相关的设置,上一篇文章里面也提到了,不熟悉的可以去查看上一篇EditText属性大全,这里着重讲输入限制的属性:
android:digits="1234567890.+-*/%\n()"
限制输入框中只能输入自己定义的这些字符串 如果输入其它将不予以显示
android:phoneNumber="true"
限制输入框中只能输入手机号码
android:password="true"
限制输入框中输入的任何内容将以"*"符号来显示
android:hint="默认文字"
输入内容前默认显示在输入框中的文字
android:textColorHint="#FF0000"
设置文字内容颜色
android:enabled="false"
设置输入框不能被编辑
如果还有一些特殊的限制,比如我做一个项目只能输入数字,且输入0之后再输入1,则只显示1,这就需要单独去进行设置了,也非常的简单。
给EditText添加一个监听事件,当检测到里面的内容变化以后,根据需求,修改相关的内容就可以了。
使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听,TextWatcher是一个接口类,所以必须实现TextWatcher里的抽象方法:
当EditText里面的内容有变化的时候,触发TextChangedListener事件,就会调用TextWatcher里面的抽象方法。
public class MainActivity extends Activity
{
private EditText text;
String str;
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (EditText)findViewById(R.id.text);
text.addTextChangedListener(textWatcher);
}
private TextWatcher textWatcher = new TextWatcher()
{
@Override
public void afterTextChanged(Editable
s) {
// TODO Auto-generated method stub
Log.d("TAG","afterTextChanged--------------->");
}
@Override
public void beforeTextChanged(CharSequence
s, int start, int count,
int after)
{
// TODO Auto-generated method stub
Log.d("TAG","beforeTextChanged--------------->");
}
@Override
public void onTextChanged(CharSequence
s, int start, int before,
int count)
{
Log.d("TAG","onTextChanged--------------->");
str = text.getText().toString();
try {
//if ((heighText.getText().toString())!=null)
Integer.parseInt(str);
} catch (Exception e) {
// TODO: handle exception
}
}
};
}
该方法可以监听到Edittext的变化,我在onTextChanged里面监听s值得变化,然后做修改以后再setText到EditText里面,不过这时候经常会遇见光标跑到最前面的情况,很恶心,随意每次setText的时候都需要用ev.setSelection(str.length())去重新设置光标位置为str字符串的最后。
相关文章推荐
- HTML 限制文本框只能输入特定字符(比如数字 onkeyup+onafterpaste)
- HTML 限制文本框只能输入特定字符(比如数字 onkeyup+onafterpaste)
- 只能输入数字和字母,特定字符
- android edittext中输入特定字符 inputtype digits
- Android之EditText只能输入数字或自定义字符
- Android之EditText只能输入数字或自定义字符
- android中输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- Android 限制textview Edittext 只能输入电话号码和特定字符的方法
- HTML 限制文本框只能输入特定字符(比如数字 onkeyup+onafterpaste)
- android EditText输入限制,只输入数字电话或者特殊字符
- Android 自定义的数字键盘 支持随意拖动 和稳定的字符输入的控件
- Android EditText限制只能输入特定字符总结
- android EditText输入限制,只输入数字电话或者特殊字符
- 输入特定字符和只能输入数字。
- Android---16---EditText中输入特定的字符
- C# 只能输入数字或特定字符
- Android EditText输入限制最大字符长度 和 限制只能输入数字和字母(包含大小写)
- 键盘只能输入数字(或其它特定的规定字符)
- Android设置EditText只接受数字输入以及定义字符
- android EditText输入限制,只输入数字电话或者特殊字符