即使开始新活动后键盘也不会关闭。
我要当用户完成编辑后,无需按完成/输入键即可开始新的活动。
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"/>
答案 0 :(得分:1)
您可以按以下代码进行设置,
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(currentFocus!!.windowToken, 0)
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
或在AndroidManifest.xml中:
<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
答案 1 :(得分:1)
您可以尝试这些。...
在清单文件中,在使用PinView的活动中添加这两行。
<activity android:name=".MainActivity"
android:configChanges="keyboardHidden"
android:label="@string/hello_activity"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan|stateHidden" />
然后在您要调用callApi方法的代码中添加以下行。
pinview.setPinViewEventListener(new Pinview.PinViewEventListener() {
@Override
public void onDataEntered(Pinview pinview, boolean fromUser) {
String pin = pinview.getValue();
// Add this following code.. it works
if (pin.length() == 6) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
}
});
答案 2 :(得分:0)
尝试一下
otpPinView.onKey(otpPinView.getFocusedChild(), KeyEvent.KEYCODE_DEL, new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_DEL));
,您也可以使用它:
InputMethodManager inputManager =
(InputMethodManager) context.
getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(
this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);