Как изменить метку ключа пользовательской клавиатуры Android в Java - PullRequest
1 голос
/ 29 марта 2019

Я хочу изменить метку клавиши на моей пользовательской клавиатуре во время выполнения, проходя через Java.Я нигде не могу найти решение.

java файл ...

открытый класс MyKeyboardService расширяет InputMethodService реализует KeyboardView.OnKeyboardActionListener {

public final static int keyToChange = 257;


KeyboardView kv;
Intent intent;

void updateInputView() {
    if (kv == null)
        return;
    Keyboard currentKeyboard = kv.getKeyboard();
    List<Keyboard.Key> keys = currentKeyboard.getKeys();
    keys.get(keyToChange).label = "Change Label";
    kv.invalidateKey(keyToChange);
}

@Override
public View onCreateInputView() {

    checkIfFirstRun();

    KeyboardView kv = (KeyboardView) getLayoutInflater().inflate(R.layout.keyboard, null);
    Keyboard keyboard = new Keyboard(this, R.xml.layout_keys);

    kv.setKeyboard(keyboard);
    kv.setPreviewEnabled(false);
    kv.setOnKeyboardActionListener(this);
    updateInputView();


    return kv;

...

XML-файл

    <Key
        android:codes="257"
        android:keyWidth="60%p"/>

Теперь у меня все еще есть пустая метка на ключе.Я хочу, чтобы он отображал «Изменить ярлык»

1 Ответ

0 голосов
/ 28 мая 2019

List <>. Get () возвращает ключ с конкретным индексом, а не ключ с конкретным кодом.Например, List <>. Get (0) возвращает первый ключ.

...