`
marine8888
  • 浏览: 544436 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android-- EditText与InputFilter实现文本对比

阅读更多

      此功能类似于临摹。已知被临摹的字符串,将字符串与EditText中输入进行

对比,输入错误,则用“×”替换所输入的字符。

import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.Spanned;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MyFilterTest extends Activity {
    /** Called when the activity is first created. */
	TextView myText;
	EditText myEdit;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final String str = "Hello,Android!";
        
        myText=(TextView)findViewById(R.id.myText);
        myText.setText(str);
        myEdit=(EditText)findViewById(R.id.myEdit);
        
        myEdit.setFilters(new InputFilter[]{ new MyInputFilter(str) });
        
    }
    public class MyInputFilter implements InputFilter{
    	String str=null;
    	public MyInputFilter(String str){
    		this.str=str;
    	}
		@Override
		public CharSequence filter(CharSequence src, int start, int end,
				Spanned dest, int dstart, int dend) {
			// TODO Auto-generated method stub
			String ch=null;
			String TAG="Filter";
			Log.w(TAG,"src:"+src+";start:"+start+";end:"+end);
			Log.w(TAG,"dest:"+dest+";dstart:"+dstart+";dend:"+dend);
	        if(dest.length()<str.length()){
	        	ch=str.substring(dstart+start, dstart+end);
	        }else{
	        	return dest.subSequence(dstart, dend);
	        }
	        	
	        if(ch.equals(src)){
	        
	        	Toast.makeText(MyFilterTest.this, "match", Toast.LENGTH_SHORT).show();
				return dest.subSequence(dstart, dend)+src.toString();
			}else{
				Toast.makeText(MyFilterTest.this, "mismatch", Toast.LENGTH_SHORT).show();
				return dest.subSequence(dstart, dend)+"×";
			}
		}
    	
    	
    }
}

 

分享到:
评论

相关推荐

    Android--EditText的富文本组件

    本篇文章将详细探讨如何在Android中实现一个基于原生EditText的富文本组件。 首先,`EditText`是一个简单的文本输入框,它可以接收用户的文本输入并显示。然而,它的功能相对有限,不支持诸如插入图片、设置文本...

    Android开发之EditText字符串过滤器InputFilter

    在Android开发中,EditText是用户输入数据的常见组件,它允许用户输入文本并显示在界面上。然而,有时候我们希望对用户的输入进行限制,比如只允许输入数字、字母或者特定格式的数据,这时我们就需要用到EditText的...

    3-4(EditText文本编辑).7z

    这个例子程序可能是一个教学项目或示例代码,旨在演示如何在Android应用中使用`EditText`控件来实现文本编辑功能。下面我们将深入探讨`EditText`的相关知识点。 1. **EditText简介**: `EditText`继承自`TextView`...

    安卓开发-Android Form EditText 验证输入合法性的编辑框.zip.zip

    EditText是Android SDK中的一个视图类,用于显示可编辑的文本。它可以包含预设文本,用户可以在其中进行修改。开发者可以通过设置属性来定制EditText的外观和行为,例如输入类型、颜色、字体大小等。 2. 输入验证的...

    安卓Android源码——(EditText文本编辑).rar

    这个压缩包文件“安卓Android源码——(EditText文本编辑).rar”很可能包含了一个关于如何自定义和深入理解`EditText`功能的示例项目。在本文中,我们将详细探讨`EditText`组件以及与其相关的知识点。 `EditText`是...

    Android软件开发之EditText 详解源码

    在Android软件开发中,EditText是用户输入文本的基本控件,它是TextView的一个子类,提供了文本输入、编辑和格式化功能。本教程将深入探讨EditText的源码,帮助开发者更好地理解和利用这一关键组件。 首先,...

    Android的edittext在弹出框中实现输入自动千分位分隔和金额限制

    这个自定义控件"Android的edittext在弹出框中实现输入自动千分位分隔和金额限制"就解决了这样的问题。 首先,我们需要理解的是`EditText`的基本用法。`EditText`是继承自`TextView`的,它添加了文本编辑功能。我们...

    Android中EditText的常用效果实现

    在Android开发中,`EditText`是用户界面(UI)组件之一,用于接收用户输入文本。它在各种场景下都有广泛的应用,例如登录、注册、评论等。本篇将深入探讨`EditText`的一些常见效果实现,包括输入表情和验证输入。 1...

    InputFilter实现EditText文本输入过滤器实例代码解析

    EditText是Android的文本输入框控件,这地球人应该都知道的了,但是默认的EditText是无所不能输入的,有时候我们需要设计一 款软件,而且是给小孩子使用的,而且需要屏蔽以下未成年人所不能涉及的内容,也就是屏蔽...

    Android-6位自定义手机验证码输入框

    EditText是Android系统提供的用于接收用户输入文本的基本控件,通常用于表单或对话框中。然而,系统默认的EditText并不能满足所有需求,如在此案例中,我们需要的是一个能够自动在6个输入框之间切换的验证码输入框。...

    Android EditText 正则表达式 限制数字、字母、字符 输入 密码框

    在Android开发中,`EditText`是用于用户输入文本的基本组件,常常用于收集用户的数据,如密码、邮箱地址等。为了确保用户输入的数据符合特定格式,我们可以利用正则表达式(Regular Expression)进行验证。正则...

    安卓EditText输入框相关-androidEdittext两位小数输入可用于价格计算器.zip

    这个压缩包“安卓EditText输入框相关-androidEdittext两位小数输入可用于价格计算器.zip”包含了一个示例,展示如何限制`EditText`输入为最多两位小数,这对于构建价格计算器或其他涉及货币输入的应用场景非常有用。...

    android 中如何限制 EditText 最大输入字符数

    限制 EditText 最大输入字符数可以通过三种方法实现:在 xml 文件中设置文本编辑框属性、在代码中使用 InputFilter 进行过滤、利用 TextWatcher 进行监听。开发者可以根据实际情况选择适合的方法。

    Android应用源码之(EditText文本编辑)-IT计算机-毕业设计.zip

    在Android应用开发中,EditText是不可或缺的一个组件,它允许用户输入和编辑文本。这份源码Demo专注于EditText的使用,对于毕业设计或者Android编程学习者来说,是一个很好的实践案例。下面我们将详细探讨EditText的...

    android edittext表情过滤

    在Android开发中,EditText是用户输入文本的常见组件,它允许用户输入文本并进行各种操作。然而,有时候我们并不希望用户在EditText中输入特定类型的数据,例如系统或自定义的emoji表情。在这种情况下,我们需要实现...

    Android自定义EditText

    2. **输入过滤**:通过实现`InputFilter`接口并将其设置到EditText的`Filters`数组中,可以限制用户输入的内容。例如,只允许输入数字、字母,或者限制输入长度。 3. **监听事件**:使用`addTextChangedListener`...

    安卓EditText输入框相关-实现EditText输入文字之后格式正确性认证功能.rar

    EditText通常通过XML布局文件进行声明,可以设置属性如输入类型(inputType)、提示文本(hint)以及是否允许为空(android:required)。例如: ```xml &lt;EditText android:id="@+id/editTextEmail" android:...

    Edittext限制字符数,可以限制最大和最小。

    综上所述,通过自定义`InputFilter`或者使用`TextWatcher`监听,我们可以在Android应用中实现对`EditText`字符数的限制,确保用户输入符合我们的业务需求。在实际开发中,可以根据项目需求灵活选择合适的方法。

Global site tag (gtag.js) - Google Analytics