安卓-关于EditText的那些事......

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Daxue_haha/article/details/76922702

EditText 的一些不常用属性

属性 说明
android:hint text内容为空时显示的文本
android:textColorHint text内容为空时显示的文本颜色
android:minLines 设置文本最小的行数
android:maxLines 设置文本最大的行数
android:drawableLeft 左面的图标(其他方向相同)
android:drawablePadding 设置text与drawable(图片)的间隔,可设置为负数,单独使用没有效果。
android:digits 设置允许输入哪些字符。如“1234567890”
android:ellipsize 设置当文字过长时,该控件该如何显示。
android:lines 设置文本的行数
android:lineSpacingExtra 设置行间距如“1.5”
android:singleLine 是否单行显示
android:textStyle 字体风格
android:numeric integer(整数)decimal(小数)
android:inputType 限制输入类型
number:数字
numberDecimal:小数点类型
date:日期类型
text:文本类型(默认值)
phone:手机号
textPassword:密码
textVisiblePassword:可见密码
textUri:网址

EditText 的一些设置

1. 禁止EditText自动获取焦点,弹出键盘

//在父控件中添加属性
 android:focusable="true"  
 android:focusableInTouchMode="true"

2.软键盘的设置

//强制关闭软键盘
  private void hideKeyBoard(){
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
    }

// 改变键盘输入法的状态,如果已经弹出就关闭,如果关闭了就强制弹出 
public static void chageInputState(Context context) {  
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);  
        imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
    } 

//强制显示输入法
  private void showKeyBoard(View v) {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(v, InputMethodManager.SHOW_FORCED);// 显示输入法
    }

//edit获取光标焦点
 edittext.requestFocus();
 edittext.findFocus();

3. 当EditText超过一定长度时,用省略号代替

android:singleLine="true" 
android:ellipsize="end"
//start:省略号显示在开头
//end:省略号显示在结尾
//middle:省略号显示在中间
//marquee:以跑马灯的方式显示(动画横向移动) 

4. EditText的长度监听事件

edittext.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                Log.i("textbefore","内容改变之前调用:"+s);
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                Log.i("texton","内容改变,可以去告诉服务器:"+s);
            }

            @Override
            public void afterTextChanged(Editable s) {
                Log.i("textafter","内容改变之后调用:"+s);
            }
 });

5.EditText软键盘回车键变为搜索键

android:imeOptions="actionSearch"
android:singleLine="true"

//监听回车键方法
 edittext.setOnKeyListener(new OnKeyListener() {

@Override

public boolean onKey(View v, int keyCode, KeyEvent event) {

  if (keyCode == KeyEvent.KEYCODE_ENTER) {
       // 隐藏软键盘(上面的方法中有)
      hideKeyBoard();
      //进行搜索操作的方法,在该方法中可以加入mEditSearchUser的非空判断
       search();
   }
      return false;
     }
  });

 // 搜索功能
private void search() {
  String text= edittext.getText().toString().trim();
  if (!TextUtils.isEmpty(searchContext)) {
       // 此处调用搜索方法
       doSearch(text);
   } else {
     T.show(this, "请输入需要搜索的内容");
   }
}

猜你喜欢

转载自blog.csdn.net/Daxue_haha/article/details/76922702