packagecom.example.yanlei.yl2;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.DialogInterface.OnKeyListener;importandroid.os.Bundle;importandroid.support.v7.app.AppCompatActivity;importandroid.app.Activity;importandroid.os.Bundle;importandroid.text.Editable;importandroid.text.TextWatcher;importandroid.util.Log;importandroid.widget.TextView;importandroid.widget.EditText;importandroid.view.View;importandroid.widget.Toast;public class MainActivity extendsAppCompatActivity {//定义TextView对象
privateTextView Tv;//定义EditText对象
privateEditText Et;
@Overridepublic voidonCreate(Bundle savedInstanceState) {//当创建此Activity的时候回调
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
Et.addTextChangedListener(newEditChangedListener());
}private voidfindView() {//得到当前布局的控件对象
Tv =(TextView) findViewById(R.id.Tv);
Et=(EditText) findViewById(R.id.Et);
}//在xml中绑定的点击调用函数
public voidmyclick(View v) {//得到用户输入的用户名,得到长度
int len =Et.getText().toString().length();//根据输入的用户名的长度,做出对应的提示。
if (len > 5 && len < 9) {
Tv.setText("用户名合法,长度为:" +len);
}else{
Tv.setText("用户名长度非法,长度为:" +len);
}
}class EditChangedListener implementsTextWatcher {private CharSequence temp="";//监听前的文本
private int editStart;//光标开始位置
private int editEnd;//光标结束位置
private final int charMaxNum = 10;boolean DEBUG = false;
String TAG= "测试:";
@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, intafter) {if(DEBUG)
Log.i(TAG,"输入文本之前的状态");
temp=s;
}
@Overridepublic void onTextChanged(CharSequence s, int start, int before, intcount) {if(DEBUG)
Log.i(TAG,"输入文字中的状态,count是一次性输入字符数");
Tv.setText("还能输入" + (charMaxNum - s.length()) + "字符");
}
@Overridepublic voidafterTextChanged(Editable s) {if(DEBUG)
Log.i(TAG,"输入文字后的状态");try{if (temp.length() >charMaxNum) {
Toast.makeText(getApplicationContext(),"你输入的字数已经超过10了限制!", Toast.LENGTH_LONG).show();
}
}catch(Exception ex) {
}
}
}
}