Android Edittext 开发常见问题总结(焦点、输入、键盘弹出等)

来源:互联网 发布:知乎 单人沙发推荐 编辑:程序博客网 时间:2024/04/27 17:29

  Edittext在android的开发中经常需要使用,以下列举其开发中遇到的一些常见情况:
  
1、焦点得到/失去事件监听
  我们需要在android的Edittext得到/失去焦点时,处理一些事件时,需要对EditText对象的Focus进行监听处理。

//定义Edittext mEdt = (EditText) findViewById(R.id.my_edittext);mEdt .setOnFocusChangeListener(mFocusChangeListener);//监听private OnFocusChangeListener mFocusChangeListener = new OnFocusChangeListener() {        @Override        public void onFocusChange(View arg0, boolean isFocus) {            // TODO Auto-generated method stub              if(isFocus) {                // 此处进行得到焦点时的事件处理                } else {                // 此处进行失去焦点时的事件处理                }        }    };

2、强制失去焦点
  在某些情况下,我们不希望进入界面初始化时Edittext自动获取焦点,有一种简便方法:此时我们只需在xml文件中使其强制失去焦点,具体在其父控件中加上:
android:focusable=”true”
android:focusableInTouchMode=”true”
代码如下:

<RelativeLayout            android:layout_width="fill_parent"            android:layout_height="35dp"            android:focusable="true"            android:focusableInTouchMode="true"            android:orientation="horizontal"             >            <Button                android:id="@+id/button"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                />            <EditText                style="@style/EditText"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_toLeftOf="@id/button"                android:background="@null"                >            </EditText></RelativeLayout>

3、输入特殊格式的字符
密码文本框:密码输入是Android应用常用的功能,通过配置EditText的android:password=”true”就可以实现这一密码输入功能
电话输入框:专门输入电话号码的文本框,通过设置android:phoneNumber=”true”就可以把EditText变成只接受电话号码输入的文本框,连软键盘都已经变成拨号专用软键盘了。
纯数字:EditText为我们提供了android:numeric来控制输入的数字类型,一共有三种分别为integer(正整数)、signed(带符号整数)和decimal(浮点数)。

4、Enter键图标
  软键盘的Enter键默认显示的是“完成”文本。通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:
  actionUnspecified :未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED
  actionNone:没有动作,对应常量EditorInfo.IME_ACTION_NONE
  actionGo:去往,对应常量EditorInfo.IME_ACTION_GO
  actionSearch :搜索,对应常量EditorInfo.IME_ACTION_SEARCH
  actionSend :发送,对应常量EditorInfo.IME_ACTION_SEND
  actionNext: 下一个,对应常量EditorInfo.IME_ACTION_NEXT
  actionDone: 完成,对应常量EditorInfo.IME_ACTION_DONE

5、键盘弹出问题
  5.1 此处给出Android EditText不弹出输入法焦点问题的总结。

  5.2 强制弹出键盘:
  

        mEidText = (EditText) findViewById(R.id.edittext);        mEidText.setFocusableInTouchMode(true);        mEidText.requestFocus();        Timer timer = new Timer();        timer.schedule(new TimerTask()        {            public void run()            {                InputMethodManager inputManager =                (InputMethodManager) mEidText.getContext()                        .getSystemService(Context.INPUT_METHOD_SERVICE);                inputManager.showSoftInput(mEidText, 0);            }        },800);

其他问题,待补充。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 js中下拉菜单被图片挡住怎么办 更换主机后用户名跟密码忘了怎么办 换手机号了京东账号登录不上怎么办 口令卡绑定时访问页面找不回怎么办 手机淘宝购物车不小心删除了怎么办 上淘宝网图片文字不清晰怎么办 淘宝店铺低消费人群占比多怎么办 微信只能在应用商城里面打开怎么办 淘宝买了特价商品店家不发货怎么办 红米5a装不下卡怎么办 红米3s流量太慢怎么办 红米3s触屏失灵怎么办 红米note的4g信号差怎么办 电信4g网速慢怎么办红米手机 红米3电信4g信号不好怎么办 红米note3无法连接4g怎么办 红米2a手机开不了机怎么办 红米2a不支持微信运动怎么办 红米2a开不了机怎么办 红米2a突然开不了机怎么办 苹果手机刷机刷到一半没电了怎么办 红米5手机死屏了怎么办 小米2a手机开不了机怎么办 小米2a长时间没用开不了机怎么办 红米手机玩游戏太卡怎么办 红米2a无限重启怎么办 红米3s像素好差怎么办 红米4x后摄像头进水了怎么办 红米手机卡死了又不能拆电池怎么办 红米1s格式化输入法没了怎么办 红米5a锁屏密码怎么办 红米1s手机开不开机怎么办 红米2a忘记解锁密码怎么办 红米手机忘了解锁图案怎么办 账户密码忘记了手机号不用了怎么办 手机电池用完了冲不进去电怎么办 华为手机电池一体的想扣电池怎么办 苹果微信支付显示需要验证码怎么办 天猫极速退货上门取件预约满怎么办 手机锁死了忘记魅族账号密码怎么办 魅蓝e升级系统开不了机了怎么办