android - 用户在Goodie Bag PinviewEditText中完成编辑后如何自动关闭键盘?
问题描述
即使在开始新活动后键盘也不会关闭。
我想当用户完成编辑后,开始一个新的活动而不按完成/输入。
pinview.setPinViewEventListener(new Pinview.PinViewEventListener() {
@Override
public void onDataEntered(Pinview pinview, boolean fromUser) {
String pin=pinview.getValue();
callApi(pin);
}
});
和 xml 是
<com.goodiebag.pinview.Pinview
android:id="@+id/pinview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:pinWidth="30dp"
app:pinHeight="30dp"
app:pinLength="6"
android:layout_gravity="center_horizontal"
app:cursorVisible="false"
app:forceKeyboard="true"
app:hint=""
app:inputType="number"
android:layout_marginTop="10dp"
app:password="false"/>
解决方案
您可以通过代码设置如下,
科特林
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(currentFocus!!.windowToken, 0)
安卓java
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
或在 AndroidManifest.xml 中:
<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
推荐阅读
- python - 通过用户交互在最小值和最大值之间切换
- r - 匹配字符串; 和 %
- jmeter - 在 Jmeter 中每 10 分钟执行一次采样器
- python - Django 中的模型层次结构
- asp.net-core - 在 ASP.NET Core 2.2 控制台应用程序中,有没有办法为整个用户浏览器会话保留 httpcontext.connection.id
- node.js - Express-getting this error message试图运行服务器
- google-cloud-platform - 谷歌云调度程序是否可以以给定的频率将数据列表推送到发布/订阅?
- c# - 具有可选关系的 EF Core 3.1 DeleteBehavior.SetNull 触发约束异常
- java - ActiveMQ 5.15.11 Java 版本支持
- python - 使用 ctypes 传递 2d numpy 数组时出现分段错误(核心转储)