在此先感谢您的帮助.
// 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);
但键盘仅在触摸editText字段后出现(即用我的手指).有没有办法让我可以在不使用物理触摸的情况下自动显示电路板?
顺便说一句,我知道我如何指定宽度和高度并不是正确的做事方式.
解决方法
感谢@ Shubham的链接,我能够弄明白.然而,解决方案不是链接中给出的答案.这是第二个答案.
editText.requestFocus(); InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
编辑:
一旦使用上述解决方案,键盘将保留在屏幕上,直到用户按下后退按钮或主页按钮(有时需要几次).要删除键盘,请使用此功能
imm.toggleSoftInputFromWindow(rootView.getWindowToken(),0);
在我的情况下,rootView是当前活动的rootView.我没有测试这个,看看这是否适用于子视图.