微调不重点

我在一个活动中使用了4个EditText字段和2个spinners。 这些组件的顺序是2 EditText ,然后是2个EditText ,然后是2个EditText字段。

当我从EditText传递焦点(在软键盘的下一个button的帮助下)到微调器,微调器没有得到焦点,焦点被转移到下一个EditText字段放置在微调器后面。

我已经使用微调器上的requestfocus(),但它不工作。

我如何确保微调器的焦点?

  • 活动开始时,屏幕键盘会自动打开
  • 如何通过javascript或jquery将input字段集中在Android浏览器上
  • 我必须点击button两次才能工作
  • Android WebView焦点问题
  • EditText:避免重点关注setText()
  • 如何将Android SeekBar设置为无法移动/冻结?
  • 自动显示键盘
  • Androidbutton需要两次点击才能进行操作
  • 我设法find一个解决scheme,然后重新定位我的微调。 在微调控件之前的EditText中,添加这个监听器:

     editTextBefore.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView textView, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_NEXT) { hideKeyboard(); textView.clearFocus(); spinner.requestFocus(); spinner.performClick(); } return true; } }); 

    您还需要添加这些线到能够微调获得焦点:

     spinner.setFocusable(true); // can be done in XML preferrable 

    我的hideKeyboard函数只是我想添加的一个视觉细节,所以键盘被隐藏了:

     private void hideKeyboard() { InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } 

    希望我在这个棘手的问题帮助。
    标志InputMethodManager.HIDE_NOT_ALWAYS可以在文档中find 。

    谢谢,我已经解决了以下几点:

    1. 我将Spinner对象设置在最上面(在onCreate方法中),以确保我的代码首先被执行
    2. 我使用了以下内容:

       Spinner s1 = (Spinner) findViewById(R.id.spinner1); s1.setFocusable(true); s1.setFocusableInTouchMode(true); s1.requestFocus(); 

    这是在黑暗中拍摄的,但是尝试在微调器上设置可调焦的属性(以XML或代码的forms,无论以何种方式进行)。

    http://developer.android.com/reference/android/view/View.html#attr_android:focusable

    编辑:另外,看到这个问题: 无法pipe理要求重点微调

    我只是有同样的问题。 我使用nextFocusDown / Up / Left / Right属性解决了这个问题。

     <EditText android:id="@+id/tPhone" ... android:focusableInTouchMode="true" android:focusable="true" android:nextFocusDown="@+id/sCountry"/> <Spinner android:id="@+id/sCountry" .... android:focusableInTouchMode="true" android:focusable="true" android:nextFocusUp = "@+id/tPhone" android:nextFocusDown="@+id/tStreet"/> <EditText android:id="@+id/tStreet" ... android:visibility="gone" android:focusableInTouchMode="true" android:focusable="true" android:nextFocusUp = "@+id/sCountry"/> 

    但为什么这是必要的…打败了我。