ハードウェアキーボードを使用してAndroidでキャップロック状態を取得するにはどうすればよいですか? Pure Javaで それはAndroidでキャップロック状態を取得する
boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
で検出することができる。しかし、これはAndroidのでは動作しません...
ハードウェアキーボードを使用してAndroidでキャップロック状態を取得するにはどうすればよいですか? Pure Javaで それはAndroidでキャップロック状態を取得する
boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
で検出することができる。しかし、これはAndroidのでは動作しません...
(それをテストしていない)これを試してみてください:あなたが最初の文字を作りたい場合は、あなたのEditTextでandroid:inputType="textCapSentences"
を使用することができます
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);
}
}
event.isCapsLockOn()はそれを作った。ありがとう! – Kewitschka
[doc](http://developer.android.com/reference/android/widget/TextView.html)から次の点に注意してください: 'ソフトウェアキーボードのキーの押下は、通常このリスナーを起動しませんが、いくつかの状況でそうする。ソフトキーの押下に頼らないでください。 – user2340612
ソフトウェアキーボード...彼はハードウェアキーボードについて尋ねました。また、ネイティブのソフトウェアキーボードアプリは、リスナーを(スウィフトキーとして)トリガーし、それが最良の解決策です – royB
私は、CapsLockキーの状態を検出することができます任意のAndroidのAPIがあるとは思いません。しかし、私はその選択肢を持っています。 CAPSLOCKがオンであるかオフであるかを検出するには、EditText
にTextWatcher
を使用することをお勧めします。
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) {
}
});
私の問題では、大文字2行の大文字を避けたいので、キャップのロック状態を知る必要があります。 – Kewitschka
@Kewitschka申し訳ありませんが、私は他の解決策はありません。あなたの質問で他の誰かが答えるのを待つかもしれません。あなたが解決策を得れば、このスレッドに投稿してください。他人を助けることができます。 –
正しい解決策が既に承認されています。とにかくありがとう – Kewitschka
、大文字で始まります。いくつかの異なる動作が必要な場合は、他のオプションもあります。
xmlファイルのEditTextに次の属性を使用してください。** android:inputType = "textCapCharacters" ** – malli
これは自動的に大文字を自動的に書くだけですか? – Kewitschka
あなたのシナリオを教えてください。これから期待している機能は何ですか? – malli