我在一個活動中使用了4個EditText
字段和2個微調。這些組件的順序是2 EditText
,然後是2個紡紗器,然後是2個EditText
字段。微調沒有得到重點
的問題,當我從EditText
轉移焦點(用軟鍵盤按鈕旁邊的幫助下),以微調器,微調不會得到焦點發生和焦點轉移到下一個EditText
領域,它被放置在微調之後。
我已經在微調器上使用了requestfocus(),但它不起作用。
如何確保微調器獲得焦點?
我在一個活動中使用了4個EditText
字段和2個微調。這些組件的順序是2 EditText
,然後是2個紡紗器,然後是2個EditText
字段。微調沒有得到重點
的問題,當我從EditText
轉移焦點(用軟鍵盤按鈕旁邊的幫助下),以微調器,微調不會得到焦點發生和焦點轉移到下一個EditText
領域,它被放置在微調之後。
我已經在微調器上使用了requestfocus(),但它不起作用。
如何確保微調器獲得焦點?
這是在黑暗中拍攝的,但嘗試在微調器上設置可重點屬性(在XML或代碼中;無論您以何種方式進行)。
http://developer.android.com/reference/android/view/View.html#attr_android:focusable
編輯:另外,看到這個問題:Can't manage to requestFocus a Spinner
thanx我已通過執行以下操作解決了問題:1)我將Spinner對象置於頂部(在onCreate方法中),以確保我的代碼首先被執行。 2)我使用以下內容: Spinner s1 =(微調)findViewById(R.id.spinner1); s1.setFocusable(真); s1.setFocusableInTouchMode(真); – Shameen
@Shameen你可以用XML來設置這些標誌。 –
謝謝,我已經這樣做解決了以下內容:
onCreate
方法中的微調對象)只是爲了確保我的代碼得到執行第一個我用了以下內容:
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
s1.setFocusable(true);
s1.setFocusableInTouchMode(true);
s1.requestFocus();
你明顯從@shanet得到了解決方案,所以你應該選擇他們的答案。 –
我設法找到其他的解決方案,然後重新定位我的微調。在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);
}
希望我在這個棘手的問題幫助。可以是found in the documentation。
您不必設置focusableInTouchMode? –
設置focusableInTouchMode會很有幫助。另外,如果你在XML中嘗試這種方式,似乎不起作用,請嘗試以編程方式。 –
真棒謝謝!!!! –
我剛剛有同樣的問題。我使用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"/>
但爲什麼這是甚至必要...打我。
請給予答案標誌。 – JJD
減號1不允許選擇的答案。 –