2016-01-20 151 views
1

我已經完成了相當多的Google搜索,並且找不到與我正在嘗試做什麼有關的任何事情。自定義Android鍵盤:如何創建輔助鍵盤

我按照這個教程:http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615和我有它的工作,因爲我希望它爲我的自定義(俄羅斯)鍵盤佈局。不過,我也希望能夠在我自定義的俄羅斯版面和英文版面之間來回切換。

現在我必須去我的屏幕上方,每次選擇一個新的鍵盤(這需要大約5秒左右,但我經常來回切換)。我想讓它在鍵盤之間切換一次。

如果有人可以向我解釋如何創建一個密鑰,讓我切換到第二個佈局,將不勝感激。

+0

只需在您的自定義鍵盤上添加一個語言鍵,然後點擊更改鍵盤的xml文件即可。你必須嘗試看看它是否有效。 –

+0

我非常感謝答覆。這正是我想要做的。有沒有機會告訴我該語言鍵的鍵碼是什麼?以及如何切換鍵盤xml的?我可以創建第二個XML,只是不知道如何切換到它。 我真的很感謝你的幫助。 – Kurt

+0

@Kurt你可以通過設置'tag:'切換到兩個佈局,並檢查活動中的標籤。 – Gattsu

回答

0

我不能感謝你足夠的Vivek Mishra。你是個天才好先生!

我創建了第二個xml文件(engQwerty.xml)來存儲我的第二個佈局。從那裏開始,我的SimpleIME.java文件中的方法「onCreateInputView()」中,我使用新的xml文件創建了第二個鍵盤,並創建了一個私有布爾變量(在我的情況下是isRus)以保持跟蹤其中佈局我在。

engKeyboard = new Keyboard(this, R.xml.engQwerty); 
    isRus = true; 

然後,我添加了一個密鑰,與密鑰-51(任意選擇)到這兩個xml文件。 然後回到SimpleIME.java文件時,安其作用下,我說:

case -51 : 

    if(isRus) { 
     kv.setKeyboard(engKeyboard); 
     isRus = false; 
    } 
    else { 
     kv.setKeyboard(rusKeyboard); 
     isRus = true; 
    } 

    break; 

即檢查我目前在佈局和它們之間切換相應。最後,如果你想讓caps或shift鍵相應地更新你的鍵盤,在「onKey」函數的「case Keyboard.KEYCODE_SHIFT:」下確保你添加你的新鍵盤變成「setShifted」。

engKeyboard.setShifted(caps); 

歸功於Vivek Mishra。希望這可以幫助像我這樣的新手android程序員找到一個相當簡單的任務的解決方案。