zoukankan      html  css  js  c++  java
  • 点击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);
    		}
    	}
    

      

  • 相关阅读:
    Nginx 之 Nginx配置实例——负载均衡
    Nginx 之 Nginx配置实例——反向代理
    OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks
    Fourier Transform
    Pytest中使用pytest.exit中断用例执行
    Pytest自定义测试报告
    idea spring源码踩坑日记
    数据结构笔记八:排序
    数据结构笔记七:查找
    数据结构笔记六:图
  • 原文地址:https://www.cnblogs.com/qixing/p/3978540.html
Copyright © 2011-2022 走看看