EditTextPreference InputFilter過濾字符串及限製長度的實現
https://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', '.'}
代碼實現如下:
- 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
https://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 |
最後更新:2017-04-04 07:03:41