输入法可见性
Android系统根据输入焦点或移出可编辑的文本字段时 来 显示或隐藏输入法以及输入法界面的和文本字段在输入法上的显示方式
Android 会在 Activity 启动时将焦点移至布局中的第一个文本字段,但它不会显示输入法,此行为是恰当的,因为输入文本可能不是 Activity 中的主要任务
输入文本确实是主要任务(例如在登录屏幕中),那么您可能希望默认显示输入法。
如果用户的设备连接了硬件键盘,则不会显示软输入法。
根据需要显示输入法
Activity 的生命周期中有一个方法,您希望为其确保输入法是可见的,则可以使用 InputMethodManager
来显示它
public void showSoftKeyboard(View view) {
if (view.requestFocus()) {
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
}
}
输入法显示后,您不应以编程方式将其隐藏。当用户完成文本字段中的任务时,系统会隐藏输入法,或者用户可以使用系统控件(例如使用“返回”按钮)隐藏输入法
指定界面的响应方式(adjust×××)
系统会决定应如何调整界面的可见部分,但可能操作不正确。为了确保应用具有最佳行为,您应该指定希望系统如何在剩余空间中显示界面。
要确保系统将布局大小调整为可用空间,以确保所有布局内容均可访问(尽管可能需要滚动),请使用 “adjustResize”
如果您使用相对布局将按钮栏放置在屏幕底部,则使用 “adjustResize” 会调整布局大小,使得按钮栏显示在输入法上方
指定输入法类型(电子邮件地址、电话号码或纯文本)
您应该始终通过向 元素添加 android:inputType 属性来声明文本字段的输入法。为输入法指定各种行为
最重要的是,如果文本字段是用于输入基本文本(例如短信),则应该使用 “textAutoCorrect” 值启用自动拼写更正
指定输入法操作(下一步,完成,发送)
认情况下,系统会使用此按钮执行下一步或完成操作,除非文本字段允许输入多行文本(例如使用 android:inputType=“textMultiLine”),在这种情况下,此操作按钮即为回车符
要指定键盘操作按钮,请使用操作值为 “actionSend” 或 “actionSearch” 等的 android:imeOptions 属性
然后,您可以通过定义 TextView.OnEditorActionListener(针对 EditText 元素),监听按下操作按钮的操作。在监听器中,响应在 EditorInfo 类中定义的相应 IME 操作 ID,例如 IME_ACTION_SEND
EditText editText = (EditText) findViewById(R.