android - Android:在 PIN EditText 上显示键盘
问题描述
我对 android 编程和开发现有应用程序非常陌生。该应用程序有一个 4 位数字的 PIN 条目。我面临的问题是,每次出现 PIN 输入掩码时,键盘都没有显示,有时键盘显示,有时没有。在应用程序中有 4 种情况,当显示 PIN 输入时:登录后,当打开应用程序并且用户登录时,进入配置文件设置和更改 PIN。这种行为真的很奇怪,它不像键盘被切换,所以一次显示而下一次不显示,它看起来是随机的。
这是应该显示键盘的部分:
public void showSoftInput() {
if (mEditText != null) {
mEditText.requestFocus();
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, InputMethodManager.SHOW_IMPLICIT);
}
}
解决方案
您可以做的是将焦点放在您的 pin 编辑文本上,其他东西正在占据焦点,可能是因为键盘没有出现。
尝试requestfocus
将注意力集中在您的 PIN 编辑文本上
以编程方式
edittext.requestFocus();
如果需要,在 xml 中
<EditText...>
<requestFocus />
</EditText>
推荐阅读
- c++ - 如何在 C++ 中使用 std::cout 正确显示十六进制字符串文字?
- python - 我试图从每个句子中得到表达
- java - 无法使用私钥签署数据,快速获取密钥不支持的算法
- wpf - 为什么我无法在 Wpf 的应用程序内使用 WebView 导航 html 文件?
- javascript - 使用 moment.js 更改日期时间戳上的时区,而不更改时间
- jquery - 添加两个 JSON 对象并创建一个新对象
- java - ClassNotFoundException:edu.stanford.nlp.tagger.maxent.ExtractorNonAlphanumeric
- java - 如何检查数组是否与参数具有相同的值?
- asynchronous - Dart中以同步方式调用异步函数
- c++ - 变量定义到 C++ 中的布尔值转换