Подтвердить что ты не робот

Заблокировать состояние блокировки на Android

Как я могу получить состояние блокировки шапков в Android с помощью аппаратной клавиатуры? В чистой Java он может быть обнаружен с помощью

boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);

Но это не работает с Android...

4b9b3361

Ответ 1

Попробуйте это (не проверял):

public class CustomEditText extends EditText{


public CustomEditText(Context context) {
    super(context);
}

public CustomEditText(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(event.isCapsLockOn()){
        //Do what Ever
    }
    return super.onKeyDown(keyCode, event);
}

}

isCapsLockOn

Ответ 2

Я не думаю, что есть какой-либо Android API, который может обнаружить состояние caplock. Но у меня есть альтернатива. Если вы хотите определить, включен ли CAPSLOCK или нет, лучше использовать TextWatcher для EditText.

mEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            String character = s.toString();
            /*
            Matche entered character with Rajex wheter its capital or small
             */
            if (Pattern.matches("[a-z]",character)) {
                Log.e("","CapsLock is OFF");
            }
            else if (Pattern.matches("[A-Z]",character)){
                Log.e("", "CapsLock is ON");
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

Ответ 3

Вы можете использовать android:inputType="textCapSentences" в своем editText, если хотите сделать первую букву, начните с кепок. Существуют и другие варианты, если вы хотите какое-то другое поведение.