码迷,mamicode.com
首页 > 其他好文 > 详细

点击EditText可编辑,点击其他地方不可编辑

时间:2014-09-18 09:43:43      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   ar   2014   div   cti   代码   

我是在Fragment中实现的,在网上查了,有的说要回调Activity的onTouch事件,通过实验直接在Fragment中即可。如下:

我的EditText在ScrollView,因为ScrollView本身已经设置onTouch事件,并不抛出,所以必须监听ScrollView的onTouch事件

开始和点击其他地方如图:

bubuko.com,布布扣

点击EditText时如图:

bubuko.com,布布扣

具体代码:

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可编辑,点击其他地方不可编辑

标签:des   blog   http   io   ar   2014   div   cti   代码   

原文地址:http://www.cnblogs.com/qixing/p/3978540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!