android随笔


按确认键使输入框跳到下一个输入框

在EditText中加入
android:inputType=“text”
android:imeOptions=“actionNext”
就可以了

 <EditText
         android:id="@+id/orderName"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:inputType="text"
          android:imeOptions="actionNext"
          android:ems="10" >
 </EditText>

二、输入框失去焦点

//事件分发控制  android界面有输入框时,点击空白处,隐藏键盘并且清除焦点
	@Override
	public boolean dispatchTouchEvent(MotionEvent ev) {
	    if (ev.getAction() == MotionEvent.ACTION_DOWN) {
	        View view = getCurrentFocus();
	        if (isHideInput(view, ev)) {
	            HideSoftInput(view.getWindowToken());
	            view.clearFocus();
	        }
	    }
	    return super.dispatchTouchEvent(ev);
	}
	/**
	 * 判定是否需要隐藏
	 */
	private boolean isHideInput(View v, MotionEvent ev) {
	    if (v != null && (v instanceof EditText)) {
	        int[] l = {0, 0};
	        v.getLocationInWindow(l);
	        int left = l[0], top = l[1], bottom = top + v.getHeight(), right = left + v.getWidth();
	        if (ev.getX() > left && ev.getX() < right && ev.getY() > top && ev.getY() < bottom) {
	            return false;
	        } else {
	            return true;
	        }
	    }
	    return false;
	}
	/**
	 * 隐藏软键盘
	 */
	private void HideSoftInput(IBinder token) {
	    if (token != null) {
	        InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
	        manager.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS);
	    }
	}

« »

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *