对于EditText输入框字符长度限制的方法有以下两种方法,方法虽简单其功能却很实用,下面是其实现功能的方法:
方法一:使用可以在layout xml中加上属性android:maxLength
<EditText
android:id="@+id/editTextShow"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hint"
android:cursorVisible="false"
android:lines="1"
android:maxLength="16"
/>
方法二
----------
布局代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_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"
tools:context="com.wang.edittext.MainActivity" >
<TextView
android:id="@+id/tv_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内容"
android:textSize="20dp"/>
<EditText
android:id="@+id/et_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入内容"/>
</LinearLayout>
业务代码
package com.wang.edittext;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView tvSubmit;
private EditText edText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setViews();
}
private void setViews() {
edText = (EditText) findViewById(R.id.et_text);
edText.addTextChangedListener(watcher);
}
TextWatcher watcher = new TextWatcher() {
private CharSequence temp;
private int editStart;
private int editEnd;
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
temp = s;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
editStart = edText.getSelectionStart();
editEnd = edText.getSelectionEnd();
if (temp.length() > 10) {
Toast.makeText(MainActivity.this, "你输入的字数已经超过了限制!",
Toast.LENGTH_SHORT).show();
s.delete(editStart - 1, editEnd);
int tempSelection = editStart;
edText.setText(s);
edText.setSelection(tempSelection);
}
}
};
}