Android EditText输入最大长度限制如何给用户以友好的提示
2016-05-27 11:36
666 查看
EditText有个属性android:maxLength=”xxx” ,可以设置EditText的最大长度。
也可以用如下代码设置长度,editText.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 50 )});
自定义类实现InputFilter,在filter方法中做长度判断,这样一来,当达到最大长度之后,继续输入字符的话,则每次都会弹toast提示。
出处:http://sphere.cnblogs.com
出处:/article/5317533.html
也可以用如下代码设置长度,editText.setFilters( new InputFilter[]{ new InputFilter.LengthFilter( 50 )});
xml布局如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="请输入:" /> <EditText android:id="@+id/editText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:maxLength="15" /> </LinearLayout>
package com.example.edittext; import android.app.Activity; import android.os.Bundle; import android.text.InputFilter; import android.text.Spanned; import android.view.Gravity; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText editText = null; private Toast toast = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText)findViewById(R.id.editText); editText.setFilters(new InputFilter[]{new MaxTextLengthFilter(16)}); } class MaxTextLengthFilter implements InputFilter{ private int mMaxLength; public MaxTextLengthFilter(int max){ mMaxLength = max - 1; toast = Toast.makeText(MainActivity.this,"字符不能超过15个",1000); toast.setGravity(Gravity.TOP, 0, 235); } public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart ,int dend){ int keep = mMaxLength - (dest.length() - (dend - dstart)); if(keep < (end - start)){ toast.show(); } if(keep <= 0){ return ""; }else if(keep >= end - start){ return null; }else{ return source.subSequence(start,start + keep); } } } }
自定义类实现InputFilter,在filter方法中做长度判断,这样一来,当达到最大长度之后,继续输入字符的话,则每次都会弹toast提示。
出处:http://sphere.cnblogs.com
出处:/article/5317533.html
相关文章推荐
- android 游戏 剪切图动画
- 安卓初识基本控件_SeekBar
- 关于Android的.so文件
- 安装使用Android Studio时可能出现的几个问题解决办法
- android activity 应该知道的一切
- android 事件派发流程详解
- Android开发性能优化
- android 全局变量的使用
- Android系统关机与重启
- 教新手一步步解决:Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to和更新gradle问题
- 安卓初识基本控件_ProgressBar
- AndroidStudio如何获取sha1值
- 简述Android中Activity的启动(onCreate方法的调用)
- 华为PUSH SDK 接入方法
- Android开发中按钮点击事件的监听
- mac 下生成支付宝商家私匙
- Android 最火的快速开发框架AndroidAnnotations使用详解
- android语音识别 android.speech 包分析
- android 基础 Unicode编码统一标准 utf-8
- Android studio 下JNI编程实例并生成so库