Нет способа по умолчанию для удаления значений из pinView. Но я переопределяю событие нажатия клавиши удаления при просмотре, чтобы очистить значение в Pinview.
Попробуйте это
otpPinView.onKey(otpPinView.getFocusedChild(), KeyEvent.KEYCODE_DEL, new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_DEL));
Приведенный выше код удалит значение текущего значения в режиме просмотра. Если вы хотите очистить все значения, выполните цикл до тех пор, пока ваш Pin Pin .
Я пробовал что-то подобное
for (int i = 0;i < otpPinView.getPinLength();i++) {
otpPinView.onKey(otpPinView.getFocusedChild(), KeyEvent.KEYCODE_DEL, new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_DEL));
}
Для сценария 2:
Попробуйте это
pinview1.setPinViewEventListener(new Pinview.PinViewEventListener() {
@Override
public void onDataEntered(Pinview pinview, boolean fromUser) {
pinview2.requestFocus();
}
});
Отредактированный
Примечание. Pinview - это группа текста редактирования. Поэтому, если вы хотите, чтобы курсор был виден в первом поле, которое является первым текстом редактирования, вам нужно установить метод requestFocus
для просмотра потомков.
Вы можете попробовать ниже код
pinview1.setPinViewEventListener(new Pinview.PinViewEventListener() {
@Override
public void onDataEntered(Pinview pinview, boolean fromUser) {
pinview2.getChildAt(0).requestFocus(); //0 is index of child.
}
});