当我的edittext获得焦点时,我想显示软键盘。 我写了以下代码来做到这一点。 但是,虽然我的edittext正在获得焦点,但仍然没有出现键盘。
private void VerifyCodeEditText_FocusChange(object sender, View.FocusChangeEventArgs e)
{
if(e.HasFocus)
{
var inputManager = (InputMethodManager)GetSystemService(Context.InputMethodService);
inputManager.ShowSoftInput(VerifyCodeEditText, ShowFlags.Implicit);
}
}
答案 0 :(得分:6)
这是我用于显示软输入的实用方法。
private void ShowSoftKeyboard(View input, bool selectText)
{
if (selectText) ((EditText)input).SelectAll();
ThreadPool.QueueUserWorkItem(s =>
{
Thread.Sleep(100); // For some reason, a short delay is required here.
RunOnUiThread(() => ((InputMethodManager)GetSystemService(InputMethodService)).ShowSoftInput(input, ShowFlags.Implicit));
});
}
这与你的内部呼叫相同,但我确保它在UI线程上运行,我发现我需要一个短暂的延迟才能工作。
这应该让你工作。也许有人甚至可以改善我的:)