Sha*_*een 21 android focus spinner
我EditText在一项活动中使用了4个字段和2个微调器.这些组件的顺序是2 EditText,然后是2个微调器,然后是2个EditText字段.
当我将焦点(在软键盘下一个按钮的帮助下)EditText转移到微调器时,旋转器没有获得焦点,焦点转移到EditText放置在微调器后面的下一个场时,会出现问题.
我在微调器上使用了requestfocus(),但它没有用.
如何确保微调器获得焦点?
Rap*_*ira 40
我设法找到一个解决方案,然后重新定位我的微调器.在微调器之前的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;
}
});
Run Code Online (Sandbox Code Playgroud)
您还需要将这些行添加到有效的微调器以获得焦点:
spinner.setFocusable(true); // can be done in XML preferrable
Run Code Online (Sandbox Code Playgroud)
我的hideKeyboard函数只是我想要添加的视觉细节,因此键盘被隐藏:
private void hideKeyboard() {
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
Run Code Online (Sandbox Code Playgroud)
希望我能帮助解决这个棘手的问题.
该标志InputMethodManager.HIDE_NOT_ALWAYS可以在文档中找到.
Sha*_*een 19
谢谢,我已经解决了以下问题:
onCreate方法内),以确保我的代码首先被执行我使用了以下内容:
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
s1.setFocusable(true);
s1.setFocusableInTouchMode(true);
s1.requestFocus();
Run Code Online (Sandbox Code Playgroud)这是一个黑暗中的镜头,但尝试将可聚焦属性(在XML或代码中;无论你采用什么方式)设置为在微调器上为true.
http://developer.android.com/reference/android/view/View.html#attr_android:focusable
编辑:另外,看到这个问题:无法管理requestFocus一个微调器
| 归档时间: |
|
| 查看次数: |
27192 次 |
| 最近记录: |