我希望键盘在键入特定字符后自动进入“大写模式”。即我希望键盘按下“shift”按钮,并在键入一个开括号'('或close bracket')后大写下一个字母。
我想让它在键盘上操作并成为用户的选项,这样他们就不必将下一个字母大写。我不希望在文本出现在editText之前自动大写文本,因为我希望用户可以选择不大写下一个字母。
答案 0 :(得分:1)
这可以在您的代码库中以编程方式完成。
我附上了一些您可能觉得有用的文档。
答案 1 :(得分:0)
这样的事情可能有用:
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);
将在指定的键
之后大写