我想展示一个包含EditText的AlertDialog,它可以自动将单词大写。
关注this question和that one后,我设法让AlertDialog在显示对话框时自动显示键盘,并在用户点击EditText
时将首字母大写。但在用户点击之前,键盘会以小写模式显示。
如何以大写(自动大写单词)模式自动打开键盘?
我的相关代码如下:
input = new EditText(context);
input.setInputType(InputType.TYPE_TEXT_FLAG_CAP_WORDS);
dialog.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
还在对话框的requestFocus()
中尝试了onShowListener
,但它没有帮助。
答案 0 :(得分:4)
您需要在AlertDialog声明后使用以下代码。
AlertDialog.Builder alert = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK);
final EditText edittext = new EditText(getApplicationContext());
// Just use it here, there is much more options in the link below
edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);

答案 1 :(得分:0)
对我有用的解决方法是避免使用setMessage()
,并将消息添加到我自己的视图中(使用setView()
)。