EditTextPreference InputFilter过滤字符串及限制长度的实现
2013-01-25 15:25
513 查看
http://blog.csdn.net/hunhunzi/article/details/6225216
公司要求在Android Settings(设置)程序下的“无线和网络”下增加FM发射的菜单,主要实现FM设备打开/关闭、设置发射频率几个简单功能。其中有个问题是,输入发射频率时,只能输入数值87.0~108.0的数值范围,我想在程序中限制只能输入5个字母,只允许输入以下字母:
{'0', '1', '2', '3', '4', '5','6','7', '8', '9', '.'}
代码实现如下:
[java] view
plaincopy
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.widget.TextView;
import android.widget.EditText;
import android.text.InputFilter;
import android.text.InputType;
import android.text.Spanned;
import android.text.method.NumberKeyListener;
import android.util.Log;
import java.lang.String;
import java.lang.CharSequence;
import java.lang.Number;
import java.lang.Integer;
import java.lang.Float;
public class FmTxPreferenceChangeListener implements Preference.OnPreferenceChangeListener{
private CheckBoxPreference mCheckBox;
private EditTextPreference mEditText;
private EditText editText;
PreferenceActivity mActivity;
public FmTxPreferenceChangeListener(PreferenceActivity preferenceActivity,
CheckBoxPreference checkBoxP, EditTextPreference editTextP){
Log.d("EditTextListener","FmTxPreferenceChangeListener");
mCheckBox = checkBoxP;
mEditText = editTextP;
mActivity = preferenceActivity;
checkBoxP.setOnPreferenceChangeListener(this);
editTextP.setOnPreferenceChangeListener(this);
editText = mEditText.getEditText();
/*查阅文档发现EditTextPreference也extent了EditText,
可以通过EditTextPreference的方法getEditText()获取EditText,
然后通过调用EditText的方法InputFilter实现字符串过滤、限制输入长度
*/
editText.setFilters(new InputFilter[]{
new InputFilter(){
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend) {
// TODO Auto-generated method stub
/*这里可以作输入字符串替换的功能,如输入的是密码,可以把所有输入变成"*"号*/
return null;
}
},
new InputFilter.LengthFilter(5)/*这里限制输入的长度为5个字母*/
}
);
editText.setKeyListener(new NumberKeyListener() {
@Override
public int getInputType() {
return InputType.TYPE_MASK_VARIATION;
}
@Override
protected char[] getAcceptedChars() {/*这里实现字符串过滤,把你允许输入的字母添加到下面的数组即可!*/
return new char[]{'0', '1', '2', '3', '4', '5','6','7', '8', '9', '.'};
}
});
}
public boolean onPreferenceChange(Preference preference, Object value) {
/*当Preference改变时,这里会回调,可以判断当前改变的是CheckBoxPreference,还是CheckBoxPreference*/
return true;/**返回true表示允许改变设置,返回false表示不允许改变当前设置/
}
}
关键字:
EditTextPreference InputFilter过滤字符串的实现,
EditTextPreference InputFilter过滤输入字符串的实现,
EditTextPreference InputFilter限制输入长度,
EditTextPreference InputFilter输入替换的实现,
EditTextPreference CheckBoxPreference共用PreferenceChangeListener
android:inputType设置文本类型
http://www.cnblogs.com/mimi1/archive/2012/09/27/2705513.html
android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色
android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。
android:hintText="这里提示你该输入什么内容"
android:inputType="none"
android:inputType="text"
android:inputType="textCapCharacters"
android:inputType="textCapWords"
android:inputType="textCapSentences"
android:inputType="textAutoCorrect"
android:inputType="textAutoComplete"
android:inputType="textMultiLine"
android:inputType="textImeMultiLine"
android:inputType="textNoSuggestions"
android:inputType="textUri"
android:inputType="textEmailAddress"
android:inputType="textEmailSubject"
android:inputType="textShortMessage"
android:inputType="textLongMessage"
android:inputType="textPersonName"
android:inputType="textPostalAddress"
android:inputType="textPassword"
android:inputType="textVisiblePassword"
android:inputType="textWebEditText"
android:inputType="textFilter"
android:inputType="textPhonetic"
android:inputType="number"
android:inputType="numberSigned"
android:inputType="numberDecimal"
android:inputType="phone"//拨号键盘
android:inputType="datetime"
android:inputType="date"//日期键盘
公司要求在Android Settings(设置)程序下的“无线和网络”下增加FM发射的菜单,主要实现FM设备打开/关闭、设置发射频率几个简单功能。其中有个问题是,输入发射频率时,只能输入数值87.0~108.0的数值范围,我想在程序中限制只能输入5个字母,只允许输入以下字母:
{'0', '1', '2', '3', '4', '5','6','7', '8', '9', '.'}
代码实现如下:
[java] view
plaincopy
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.widget.TextView;
import android.widget.EditText;
import android.text.InputFilter;
import android.text.InputType;
import android.text.Spanned;
import android.text.method.NumberKeyListener;
import android.util.Log;
import java.lang.String;
import java.lang.CharSequence;
import java.lang.Number;
import java.lang.Integer;
import java.lang.Float;
public class FmTxPreferenceChangeListener implements Preference.OnPreferenceChangeListener{
private CheckBoxPreference mCheckBox;
private EditTextPreference mEditText;
private EditText editText;
PreferenceActivity mActivity;
public FmTxPreferenceChangeListener(PreferenceActivity preferenceActivity,
CheckBoxPreference checkBoxP, EditTextPreference editTextP){
Log.d("EditTextListener","FmTxPreferenceChangeListener");
mCheckBox = checkBoxP;
mEditText = editTextP;
mActivity = preferenceActivity;
checkBoxP.setOnPreferenceChangeListener(this);
editTextP.setOnPreferenceChangeListener(this);
editText = mEditText.getEditText();
/*查阅文档发现EditTextPreference也extent了EditText,
可以通过EditTextPreference的方法getEditText()获取EditText,
然后通过调用EditText的方法InputFilter实现字符串过滤、限制输入长度
*/
editText.setFilters(new InputFilter[]{
new InputFilter(){
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend) {
// TODO Auto-generated method stub
/*这里可以作输入字符串替换的功能,如输入的是密码,可以把所有输入变成"*"号*/
return null;
}
},
new InputFilter.LengthFilter(5)/*这里限制输入的长度为5个字母*/
}
);
editText.setKeyListener(new NumberKeyListener() {
@Override
public int getInputType() {
return InputType.TYPE_MASK_VARIATION;
}
@Override
protected char[] getAcceptedChars() {/*这里实现字符串过滤,把你允许输入的字母添加到下面的数组即可!*/
return new char[]{'0', '1', '2', '3', '4', '5','6','7', '8', '9', '.'};
}
});
}
public boolean onPreferenceChange(Preference preference, Object value) {
/*当Preference改变时,这里会回调,可以判断当前改变的是CheckBoxPreference,还是CheckBoxPreference*/
return true;/**返回true表示允许改变设置,返回false表示不允许改变当前设置/
}
}
关键字:
EditTextPreference InputFilter过滤字符串的实现,
EditTextPreference InputFilter过滤输入字符串的实现,
EditTextPreference InputFilter限制输入长度,
EditTextPreference InputFilter输入替换的实现,
EditTextPreference CheckBoxPreference共用PreferenceChangeListener
android:inputType设置文本类型
http://www.cnblogs.com/mimi1/archive/2012/09/27/2705513.html
android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色
android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。
android:hintText="这里提示你该输入什么内容"
android:inputType="none"
android:inputType="text"
android:inputType="textCapCharacters"
android:inputType="textCapWords"
android:inputType="textCapSentences"
android:inputType="textAutoCorrect"
android:inputType="textAutoComplete"
android:inputType="textMultiLine"
android:inputType="textImeMultiLine"
android:inputType="textNoSuggestions"
android:inputType="textUri"
android:inputType="textEmailAddress"
android:inputType="textEmailSubject"
android:inputType="textShortMessage"
android:inputType="textLongMessage"
android:inputType="textPersonName"
android:inputType="textPostalAddress"
android:inputType="textPassword"
android:inputType="textVisiblePassword"
android:inputType="textWebEditText"
android:inputType="textFilter"
android:inputType="textPhonetic"
android:inputType="number"
android:inputType="numberSigned"
android:inputType="numberDecimal"
android:inputType="phone"//拨号键盘
android:inputType="datetime"
android:inputType="date"//日期键盘
端口 | SIPPort | 整型 | [1024,65535] | 5060 | 赵超找业软weijianmiao确认? |
对端号码 | VideoCollPeerNumber | 字符串 | [1,2,3,4,5,6,7,8,9,0],最大13位 | 无 | 一般是调度台号码,例如1002 |
相关文章推荐
- EditTextPreference InputFilter过滤字符串及限制长度的实现
- edittext 特殊字符过滤和字符长度限制
- 保持字符串小数点后两位和EditText输入框中输入的数字的长度限制
- InputFilter实现EditText文本输入…
- EditText 字符串过滤 Filter
- InputFilter实现EditText文本输入过滤器
- Android开发之EditText字符串过滤器InputFilter
- Android EditText实现字符过滤
- Android字数限制的EditText实现方案研究
- Android EditText实现字符过滤
- Android 限制EditText只能输入数字、限制输入类型、限制输入长度的小技巧
- Kotlin Anko布局 TextView和EditText限制字符长度
- 答题框:EditText输入长度、输入内容的限制。
- Android实现限制EditText输入文字的数量
- InputFilter EditText的过滤器
- textfield/textview的子类,实现功能:几种不同类型的最大输入字符串字数限制,剩余可输入字符数,emoji表情过滤
- android EditText限制输入长度
- android edittext 输入长度限制并提示
- TextWatcher详解,限制输入字符,实现文本框输入框同步,TextView与EditText同步显示
- Android基础学习总结(六)——TextInputLayout+EditText 轻松实现登录界面