Android TextView的字符过滤功能

 TextView可以设置接受各式各样的字符,通过过滤指定的字符来满足不同应用的输入和显示要求。

 

通过xml配置:

android:InputType

number                               接受整数输入

numberSigned                  接受有符号整数输入

numberDecimal                接受整数和小数的输入

 

android:digits

指定接受固定的数字,如android:digits="012345",则只接受0~5数字的输入

 

android:numberic

integer                                 接受整数输入

signed                                 接受有符号整数输入

decimal                               接受整数和小数输入

 

 

通过java代码设置

其实以上3个属性,功能有点重复,最终都是通过java代码来对TextView设置KeyListener

KeyListener是一个接口,提供了对输入键盘按键的监听

InputFilter是一个接口,提供了对字符的过滤

android提供了实现了KeyListener和InputFilter的NumberKeyListener,而DigitsKeyListener继承了NumberKeyListener

 

[c-sharp] view
plain
copy

  1. TextView tv = new TextView(context);  
  2. //只接受整数输入  
  3. KeyListener l = new DigitsKeyListener(fasle,false);  
  4. //接受有符号整数输入  
  5. KeyListener l = new DigitsKeyListener(true,false);  
  6. //接受小数,整数输入  
  7. KeyListener l = new DigitsKeyListener(false,true);  
  8. //接受有符号整数/小数输入  
  9. KeyListener l = new DigitsKeyListener(true,true);  
  10. tv.setKeyListener(l);  

 

 

如果想要实现更大自由度的过滤定制,可以自己写一个KeyListener(继承BaseKeyListener)并实现InputFilter,重写filter()函数,在filter()函数里可以实现自由的过滤。

在Android中,让你的EditText只接受你指定的字符,可以用以下办法实现:
    NumberKeyListener myKeyListener =
         new NumberKeyListener() {
            public int getInputType() {
                //指定键盘类型
                 return InputType.TYPE_CLASS_TEXT;
             }
         
             protected char[] getAcceptedChars() {
                //指定你所接受的字符
                return "abcdefg".toCharArray();
             }
         };
         
        EditText tv = (EditText)findViewById(R.id.testEdit);
        tv.setKeyListener(myKeyListener);
        
你可以将字符串"abcdefg"换成任意的,你想让你的EditText所接受的字符组合。

时间: 2024-09-17 03:16:45

Android TextView的字符过滤功能的相关文章

Android编程之TextView的字符过滤功能分析_Android

本文实例分析了Android编程之TextView的字符过滤功能.分享给大家供大家参考,具体如下: TextView可以设置接受各式各样的字符,通过过滤指定的字符来满足不同应用的输入和显示要求. 通过xml配置: android:InputType number          接受整数输入 numberSigned    接受有符号整数输入 numberDecimal   接受整数和小数的输入 android:digits 指定接受固定的数字,如android:digits="012345&

Android编程之TextView的字符过滤功能分析

本文实例分析了Android编程之TextView的字符过滤功能.分享给大家供大家参考,具体如下: TextView可以设置接受各式各样的字符,通过过滤指定的字符来满足不同应用的输入和显示要求. 通过xml配置: android:InputType number          接受整数输入 numberSigned    接受有符号整数输入 numberDecimal   接受整数和小数的输入 android:digits 指定接受固定的数字,如android:digits="012345&

php中数组首字符过滤功能代码_php技巧

复制代码 代码如下: <?php $array = array( 'abcd', 'abcde', 'bcde', 'cdef', 'defg', 'defgh' ); $str = '~'.implode('~',$array).'~'; $word = $_GET['word']; //url = xxx.php?word=a preg_match_all("/~({$word}(?:[^~]*))/i",$str,$matches); var_dump($matches[1

Android实现ListView过滤功能,继承于BaseAdapter,非ArrayAdapter

其实实现ListView过滤功能最方便的便是使用ArrayAdapter,里面自带的 getFilter()方法能很方便的实现此功能,但是在实际的开发中,一般都是继承于 BaseAdapter.还有一种是利用控件AutoComplete,这种方式只是在输入框的下方 重新显示一个列表,显然,很多时候这两种方式也满足不了我们的要求. 在Activity中定义一个类,让它实现TextWatcher接口,然后再onTextChanged 方法中去过滤.然后常见相应的Pattern和match,来判断传入

Android编程实现TextView垂直自动滚动功能【附demo源码下载】

本文实例讲述了Android编程实现TextView垂直自动滚动功能.分享给大家供大家参考,具体如下: 在做android 应用的开发的时候,横向滚动或者要做出跑马灯的效果很简单,textview本身的属性就支持,只要设置准确就会滚动,开发起来比较简单,但是textview 不支持垂直滚动,那么垂直滚动就需要自己来实现了,很多网友提供的垂直滚 动方案都是千篇一律,使用ScrollView来进行滚动,但是都不完美,做起来有些别扭.有一位网友给出的歌词的滚动思路明确,能从根本上解决问题,因此我实现的

求助,谁做过android图片编辑器的文字编辑功能

问题描述 求助,谁做过android图片编辑器的文字编辑功能 最近在做一个图片编辑器,需要点击一个文字编辑按钮后,能在图片上拉出一个矩形框,之后能在这个矩形框内进行文字编辑,就是绘图工具提供的类似功能,想求助一下谁有这方面的经验,能都提供一下思路,或者谁有成品给能否看一下源码,谢谢了 解决方案 这个里面或许可以找的到.http://www.manonggu.com/biancheng/61 . 解决方案二: 让图片做背景 放上一个textview 最后用android截图功能 截取一张新图 ..

Guava中针对集合的 filter和过滤功能

Guava中针对集合的 filter和过滤功能 博客分类:  JAVA相关  在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:     Java代码   @Test   public void whenFilterWithIterables_thenFiltered() {       List<String> names = Lists.newArrayList("John", "Jane", 

php filter安全字符过滤

PHP的过滤器是用来验证和过滤数据来自不安全的来源,比如用户输入. -------------------------------------------------- ------------------------------ 什么是PHP的过滤器? 了一个PHP过滤器是用来验证和过滤数据来自不安全的来源. 为了测试,验证和过滤用户输入的或定制的数据是一个重要组成部分,任何网络应用. PHP的过滤器扩展的目的是使数据过滤更容易和更快. ----------------------------

Android AndBase框架实现多功能标题栏(一)_Android

本文是针对AndBase框架学习整理的第一篇笔记,想要了解AndBase框架的朋友可以阅读本文,大家共同学习. 1.使用AndBase实现多功能标题栏 AndBase框架内部提供了许多的方式能够使我们去设置一个更好的标题栏,进行动态的改变,而并非静态的将标题栏界面写死...能够使得标题栏更加的美观...总体就是动态的获取布局然后通过对布局的操作来自定义一个良好的标题栏... 使用AndBase框架的时候我们的主函数就不是继承于Acticity了,而是继承于AbActivity,万变不离其宗还是A