首页 > 代码库 > 点击EditText可编辑,点击其他地方不可编辑
点击EditText可编辑,点击其他地方不可编辑
我是在Fragment中实现的,在网上查了,有的说要回调Activity的onTouch事件,通过实验直接在Fragment中即可。如下:
我的EditText在ScrollView,因为ScrollView本身已经设置onTouch事件,并不抛出,所以必须监听ScrollView的onTouch事件
开始和点击其他地方如图:
点击EditText时如图:
具体代码:
EditText:edtTxt_personal_nickname
ScrollView:sv_personal
首先设置EditText的点击事件:
点击时触发可编辑
点击事件:
case R.id.edtTxt_personal_nickname: //昵称设置可编辑 setEditTextEditable(edtTxt_personal_nickname, true); break;
点击其他地方时事件:
sv_personal.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //如果编辑框获得焦点 if(edtTxt_personal_nickname.isFocused()){ //设置编辑框不可见 setEditTextEditable(edtTxt_personal_nickname, false); InputMethodManager imm=(InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edtTxt_personal_nickname.getWindowToken(), 0); } return false; } });
//设置昵称是否可编辑 private void setEditTextEditable(EditText editText, boolean value){ if (value) { editText.setFocusableInTouchMode(true); editText.requestFocus(); editText.setGravity(Gravity.LEFT); }else { editText.setFocusableInTouchMode(false); editText.clearFocus(); editText.setGravity(Gravity.CENTER); } }
点击EditText可编辑,点击其他地方不可编辑
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。