HXS*_*947 9 android android-layout
在此先感谢您的帮助.
我想在最后或执行以下代码时出现键盘.
// edit text
EditText editText = new EditText(activity);
editText.setBackgroundColor(Color.WHITE);
editText.setGravity(Gravity.TOP);
editText.setText("Type here...");
RelativeLayout relativeLayoutEditText = new RelativeLayout(activity);
RelativeLayout.LayoutParams paramRelativeLayoutEditText = new RelativeLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 43 * display.getHeight() / 80 );
paramRelativeLayoutEditText.addRule(RelativeLayout.ALIGN_PARENT_TOP);
relativeLayoutEditText.addView(editText,paramRelativeLayoutEditText);
// add all created views to rootView
rootView.addView(relativeLayoutEditText, paramEditText);
// open keyboard
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
Run Code Online (Sandbox Code Playgroud)
但键盘只在触摸editText字段后出现(即用我的手指).有没有办法让我可以在不使用物理触摸的情况下自动显示电路板?
顺便说一句,我知道我如何指定宽度和高度并不是正确的做事方式.
HXS*_*947 12
感谢@ Shubham的链接,我能够弄明白.然而,解决方案不是链接中给出的答案.这是第二个答案.
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
Run Code Online (Sandbox Code Playgroud)
编辑:
一旦使用上述解决方案,键盘将保留在屏幕上,直到用户按下后退按钮或主页按钮(有时需要几次).要删除键盘,请使用此功能
imm.toggleSoftInputFromWindow(rootView.getWindowToken(), 0,0);
Run Code Online (Sandbox Code Playgroud)
在我的情况下,rootView是当前活动的rootView.我没有测试过这个,看看这是否适用于子视图.
添加
editText.requestFocus();
Run Code Online (Sandbox Code Playgroud)
尝试这个:
EditText editText = (EditText ) findViewById(R.id.myTextViewId);
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
Run Code Online (Sandbox Code Playgroud)
确保编辑文本在触摸模式下可聚焦。你可以用两种方法来做。
在 XML 中:
android:focusableInTouchMode="true"
Run Code Online (Sandbox Code Playgroud)
在爪哇中:
editText.setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13237 次 |
| 最近记录: |