自动弹出输入法
弹出窗口时自动让控件获取焦点,并弹出输入法。注意要在onCreate中法中设置,不能在onResume中设置。 et.requestFocus(); new Timer().schedule(new TimerTask() {//Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。 //它可以计划执行一个任务一次或反复多次。TimerTask是一个抽象类,它的子类代表一个可以被Timer计划的任务。 @Override public void run() {//300毫秒后,通过输入法管理器,切换输入法的显示状态 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);//切换输入法 } }, 300);
不许手动换行
不允许手动换行,但允许自动换行 mEditText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { return (event.getKeyCode() == KeyEvent.KEYCODE_ENTER); } });
设置输入类型
et.setInputType(InputType.TYPE_CLASS_TEXT |InputType.TYPE_TEXT_VARIATION_PASSWORD);//密码类型 et.setInputType(InputType.TYPE_CLASS_PHONE);//只能输入电话号码 et.setInputType(InputType.TYPE_CLASS_NUMBER);//只能输入数字 et.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);//只能输入邮箱地址 et.setInputType(InputType.TYPE_NULL); //禁止输入(不弹出输入法) android:inputType="textPassword"
设置错误提示
et.setError("邮箱");自定义图标Drawable dr = getResources().getDrawable(R.drawable.ic_launcher); dr.setBounds(0, 0, 10, 10); //必须设置大小,否则不显示 et.setError("有错误提示", dr);
内容监听器
内容监听器TextWatcher定义的方法onTextChanged的参数的含义 public void onTextChanged(CharSequence charSequence, int start, int before, int count) { //text 改变后输入框中的字符串 //start 内容是从哪个位置开始改变的,第一个位置为0 //before 若为0,代表字符增加了,增加的个数为count;若不为0,代表字符减少了,减少的个数就是before的值 Log.i("bqt", charSequence + "--" + start + "--" + before + "--" + count); onLimitLenChanged(temp.length()); }
其他常用设置
其他常用设置
- 设置光标到指定位置 et.setSelection(2);
- 设置光标不显示 et.setCursorVisible(false);
- 设置获得焦点时全选文本 et.setSelectAllOnFocus(true);
- 请求获取焦点 et.requestFocus();
- 清除焦点 et.clearFocus();
时间: 2024-08-25 22:07:49