簡體   English   中英

如何從java類更改自定義鍵盤鍵的背景?

[英]How can I change a custom keyboard key's background from a java class?

我正在開發一個Android鍵盤,我需要在按下特定鍵時更改鍵背景。 我嘗試在mykeyboard.java文件中執行此操作:

private KeyboardView kv;
(...)
kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null);
kv.setOnKeyboardActionListener(this);
keyboard = new Keyboard(this, qwerty);
kv.setKeyboard(keyboard);
kv.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        (...)

        (v.findViewById(R.id.myKeyId)).setBackgroundColor(Color.BLUE);
        }
}

但是這個錯誤發生了:

᠎java.lang.NullPointerException:嘗試在com.mtsolutions.mykeyboard.MyKeyBoard $ 1.onTouch(MyKeyBoard.java:87)上的空對象引用上調用虛方法'void android.view.View.setBackgroundColor(int)'

這是哪一行:

(v.findViewById(R.id.myKeyId)).setBackgroundColor(Color.BLUE);

這是res / layout / keyboard.xml代碼:

<?xml version="1.0" encoding="UTF-8"?>
<android.inputmethodservice.KeyboardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:keyPreviewHeight="0dp"/>

res / xml / qwerty.xml文件中的一些代碼在哪里:

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="6.25%p"
    android:horizontalGap="0px"
    android:verticalGap="0px"
    android:keyHeight="5%p">

    <Row>
        <Key> (...) android:id"@+id/myKeyId" (...) />
    </Row>

</Keyboard>

我究竟做錯了什么?

謝謝。

kv.setBackgroundColor(Color.BLUE);

而不是復雜的代碼,這樣做你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM