EditTextPreference InputFilter过滤字符串及限制长度的实现

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 plain copy
  1. import android.app.AlertDialog;  
  2. import android.app.AlertDialog.Builder;  
  3. import android.app.Dialog;  
  4. import android.content.DialogInterface;  
  5. import android.preference.Preference;  
  6. import android.preference.PreferenceActivity;  
  7. import android.preference.CheckBoxPreference;  
  8. import android.preference.EditTextPreference;  
  9. import android.widget.TextView;  
  10. import android.widget.EditText;  
  11. import android.text.InputFilter;  
  12. import android.text.InputType;  
  13. import android.text.Spanned;  
  14. import android.text.method.NumberKeyListener;  
  15. import android.util.Log;  
  16. import java.lang.String;  
  17. import java.lang.CharSequence;  
  18. import java.lang.Number;  
  19. import java.lang.Integer;  
  20. import java.lang.Float;  
  21. public class FmTxPreferenceChangeListener implements Preference.OnPreferenceChangeListener{  
  22.       
  23.     private CheckBoxPreference mCheckBox;  
  24.     private EditTextPreference mEditText;  
  25.     private EditText editText;  
  26.     PreferenceActivity mActivity;  
  27.     public FmTxPreferenceChangeListener(PreferenceActivity preferenceActivity,   
  28.             CheckBoxPreference checkBoxP, EditTextPreference editTextP){  
  29.         Log.d("EditTextListener","FmTxPreferenceChangeListener");  
  30.         mCheckBox = checkBoxP;  
  31.         mEditText = editTextP;  
  32.         mActivity = preferenceActivity;  
  33.         checkBoxP.setOnPreferenceChangeListener(this);  
  34.         editTextP.setOnPreferenceChangeListener(this);  
  35.           
  36.         editText = mEditText.getEditText();  
  37.         /*查阅文档发现EditTextPreference也extent了EditText, 
  38.         可以通过EditTextPreference的方法getEditText()获取EditText, 
  39.         然后通过调用EditText的方法InputFilter实现字符串过滤、限制输入长度 
  40.         */  
  41.           
  42.         editText.setFilters(new InputFilter[]{  
  43.                 new InputFilter(){  
  44.                     @Override  
  45.                     public CharSequence filter(CharSequence source, int start,  
  46.                             int end, Spanned dest, int dstart, int dend) {  
  47.                         // TODO Auto-generated method stub  
  48.                         /*这里可以作输入字符串替换的功能,如输入的是密码,可以把所有输入变成"*"号*/  
  49.                         return null;  
  50.                     }  
  51.                 },  
  52.                 new InputFilter.LengthFilter(5)/*这里限制输入的长度为5个字母*/  
  53.         }                                         
  54.         );  
  55.           
  56.         editText.setKeyListener(new NumberKeyListener() {  
  57.              @Override  
  58.              public int getInputType() {  
  59.               return InputType.TYPE_MASK_VARIATION;  
  60.              }             
  61.              @Override  
  62.              protected char[] getAcceptedChars() {/*这里实现字符串过滤,把你允许输入的字母添加到下面的数组即可!*/  
  63.               return new char[]{'0''1''2''3''4''5','6','7''8''9''.'};  
  64.              }  
  65.             });       
  66.     }  
  67.     public boolean onPreferenceChange(Preference preference, Object value) {  
  68.         /*当Preference改变时,这里会回调,可以判断当前改变的是CheckBoxPreference,还是CheckBoxPreference*/  
  69.           
  70.         return true;/**返回true表示允许改变设置,返回false表示不允许改变当前设置/  
  71.     }  
  72. }  
 


 

 

关键字:

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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: EditTextPreference是一个Android平台上的Preference,它允许用户在设置界面中输入文本。用户可以在EditTextPreference中输入任何文本,例如用户名、密码等。它是Preference的一种,可以在应用程序的设置界面中使用。用户可以通过点击EditTextPreference来打开一个对话框,然后在对话框中输入文本。输入的文本将被保存在SharedPreferences中,以便在应用程序的其他部分中使用。 ### 回答2: EditTextPreference是Android中的一种Preference,可以用于输入文本或数字型数据的设置,其基本结构与其他Preference相同。当用户首次进入应用程序时,可以使用EditTextPreference来获取用户的一些必要信息,例如用户名、电子邮件地址、联系方式等,并将这些信息存储在SharedPreferences对象中。 在布局文件中,可以通过以下代码来定义EditTextPreference: ``` <EditTextPreference android:key="example_text" android:title="Example Text" android:summary="This is an example text preference" android:dialogTitle="Enter your text" android:defaultValue="default value" android:inputType="text" /> ``` 其中,android:key是用于SharedPreferences的key值,android:title是该Preference在设置界面中的标题,android:summary是该Preference的简短说明,android:dialogTitle是EditTextPreference弹出对话框的标题,android:defaultValue是该Preference的默认值,android:inputType是EditTextPreference所允许输入的数据类型。 在代码中,可以通过以下方式来访问EditTextPreference: ``` EditTextPreference editTextPreference = (EditTextPreference) findPreference("example_text"); String value = editTextPreference.getText(); ``` 其中,findPreference方法用于获得Preference对象,getText方法用于获得EditTextPreference中用户输入的值。 此外,EditTextPreference还有一些其他的方法,例如setSummary方法,用于设置EditTextPreference的简短说明;setDialogMessage方法,用于设置EditTextPreference弹出对话框的消息;setDialogTitle方法,用于设置EditTextPreference弹出对话框的标题等。 总之,EditTextPreference是一种非常方便的Preference,可以轻松实现用户输入数据的功能。在实际开发中,我们可以根据需要灵活运用EditTextPreference来满足不同的需求。 ### 回答3: EditTextPreference是一种Android中的偏好设置控件,它提供了一种简单的方式来显示和修改用户设置中的文本值。它非常适合于用于设置某些字符串类型的偏好设置,例如用户名、密码、联系人信息等。 EditTextPreference提供了一个文本框让用户输入或修改值。在默认的情况下,它显示用户之前的偏好设置值。同时,用户也可以在文本框中输入新的值。当用户点击保存按钮时,EditTextPreference会将新值存储到SharedPreferences中,以供应用程序随后使用。 使用EditTextPreference非常简单,一般需要以下几个步骤: 1. 在XML布局文件中添加EditTextPreference控件 2. 在Java代码中获取EditTextPreference对象 3. 获取存储偏好设置的SharedPreferences对象 4. 为EditTextPreference设置一个键值,可以通过这个键值来获取偏好设置值 5. 为EditTextPreference设置一个监听器,当值发生改变时,可以执行相应的处理 需要注意的是,EditTextPreference不能保证输入的值的格式是否正确,因此在保存设置值之前,应该根据具体需求对设置值进行验证。 总之,使用EditTextPreference能够简化用户操作,提高用户体验,同时也方便程序员管理用户偏好设置。它是一个非常实用的偏好设置控件,适用于各种Android应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值