EditText獲取焦點的一系列方法

/**
  * Set whether this view can receive the focus.
  *
  * Setting this to false will also ensure that this view is not focusable
  * in touch mode.
  *
  * @param focusable If true, this view can receive the focus.
  *
  * @see #setFocusableInTouchMode(boolean)
  * @attr ref android.R.styleable#View_focusable
  */
  //是否讓界面獲取焦點,設置false讓界面不能獲取焦點,如果設置成true則能獲取焦點
   public void setFocusable(boolean focusable) {
      if (!focusable) {
          setFlags(0, FOCUSABLE_IN_TOUCH_MODE);
       }
       setFlags(focusable ? FOCUSABLE : NOT_FOCUSABLE, FOCUSABLE_MASK);
    }
/**
  * Call this to try to give focus to a specific view or to one of its
  * descendants.
  *
  * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns
  * false), or if it is focusable and it is not focusable in touch mode
  * ({@link #isFocusableInTouchMode}) while the device is in touch mode.
  *
  * See also {@link #focusSearch(int)}, which is what you call to say that you
  * have focus, and you want your parent to look for the next one.
  *
  * This is equivalent to calling {@link #requestFocus(int, Rect)} with arguments
  * {@link #FOCUS_DOWN} and <code>null</code>.
  *
  * @return Whether this view or one of its descendants actually took focus.
  */
  //一個控件的setFocus是true,那麼requestFocus都返回的是true
    public final boolean requestFocus() {
        return requestFocus(View.FOCUS_DOWN);
    }

所以上面這種情況我遇見的問題是兩個輸入框的setFocus都是true,當使用requestFocus判斷第二個輸入框是否獲取到焦點時因爲前面寫了判斷第一個輸入框是否有焦點,所以一直進入不了第二個判斷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章