我希望键盘在键入特定字符后自动转到“大写模式”。即我想让键盘按下“shift”按钮,并在输入开括号'('或闭括号')'后大写下一个字母。特定字符后自动打开大写锁定?
我想这个作用在键盘上,并为用户提供一个选项,让他们不必大写一个字母。我不想在文本显示在editText中之前自动大写文本,因为我希望用户可以选择不使下一个字母大写。
我希望键盘在键入特定字符后自动转到“大写模式”。即我想让键盘按下“shift”按钮,并在输入开括号'('或闭括号')'后大写下一个字母。特定字符后自动打开大写锁定?
我想这个作用在键盘上,并为用户提供一个选项,让他们不必大写一个字母。我不想在文本显示在editText中之前自动大写文本,因为我希望用户可以选择不使下一个字母大写。
这可以通过编程方式在您的代码库来完成。
我下面连接,你可能会发现一些有用的文档。
我相信这会大写所有字符。我在按下开放式支架后想要让键盘按下“shift”按钮。所以默认情况下,下一个字母将是大写字母,但如果用户再次点击了转换按钮,则下一个字母不会是大写字母。 – ClownsENT
像这样的东西可能工作:
public class CapitalizedEditText extends EditText {
List<Integer> mKeyCodes = new ArrayList<>();
public CapitalizedEditText(Context context) {
super(context);
}
public void capitalizeAfter(int... keyCodes) {
for(int keyCode : keyCodes) {
mKeyCodes.add(keyCode);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
setFilters(getInputFilter(keyCode));
return super.onKeyDown(keyCode, event);
}
private InputFilter[] getInputFilter(int keyCode) {
return mKeyCodes.contains(keyCode)
? new InputFilter[]{new InputFilter.AllCaps()}
: new InputFilter[] {};
}
}
例如:
((CapitalizedEditText) findViewById(R.id.editid))
.capitalizeAfter(KeyEvent.KEYCODE_BUTTON_A,
KeyEvent.KEYCODE_LEFT_BRACKET,
KeyEvent.KEYCODE_LEFT_BRACKET);
将利用指定的键后, ŝ
除非你写的键盘应用程序,我敢肯定你不能。然而,您可以将'TextWatcher'附加到您的编辑文本并手动修改输入的字符。 –