2011-01-14 74 views
1

我對開發Android應用程序很陌生,面臨 困難。定製鍵盤

我想要做的是使用特定的鍵盤,當我點擊一個 EditText。到目前爲止,我發現了KeyboardKeyboardView 類,但我還沒有成功做到我想要的。

下面是我在哪裏描述:

  • 我在一個XML文件中所描述我的鍵盤,
  • 我創建了一個「KeyboardView」對象,
  • clavier=new KeyboardView(activité, (AttributeSet)findViewById(R.xml.clavier_numerique));
  • 初始化
  • 但我不知道如何用此 自定義鍵盤替換標準鍵盤。

我做錯了什麼?我還應該做什麼?

在此先感謝您花費時間來幫助我。

回答

0

您需要指定XML中的一個inputType

<EditText android:inputType="textUri"/> 

或從代碼做:

EditText input; 
input.setInputType(InputType.TYPE_CLASS_NUMBER); 

您可以閱讀可用inputType小號here

1

首先,你要決定你從鍵盤想要的東西:

,如果你只是想改變你可以做到這一點從Macarse
第一個答案 如果你想有一個完整的自定義鍵盤,你應該使用Keyboard號和KeyboardView類的第二個項目

2

你應該使用這樣的事情:

//retrieve the keyboard view from xml 
    kbdV= (KeyboardView) findViewById(R.id.kbd); 

    //set the keyboard layout to the layout you defined in res/xml/keyboard_layout.xml 
    kbdV.setKeyboard(new Keyboard(this,R.xml.keyboard_layout)); //defines the keyboard layout 

    //add a keyboard action listener 
    kbdV.setOnKeyboardActionListener(new KeyboardView.OnKeyboardActionListener(){ 
     public void onKey(int primaryCode, int[] keyCodes) { 
      handlePress(primaryCode, keyCodes); // callback to handle keypresses 
     } 
     public void onPress(int primaryCode) {} 
     public void onRelease(int primaryCode) {} 
     public void onText(CharSequence text) {} 
     public void swipeDown() {} 
     public void swipeLeft() {} 
     public void swipeRight() {} 
     public void swipeUp() {} 
    }); 

類似的佈局xml文件爲此:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

<!-- your widgets here --> 

<KeyboardView android:id="@+id/kbd" android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
</LinearLayout> 
0

當你用鍵盤=新KeyboardView(活動, (AttributeSet中)findViewById(R.xml.clavier_numerique)的EditText編輯)初始化; 您可以在其中傳輸EditText對象。並隱藏標準鍵盤,像這樣顯示自定義的KeyboardView。

public void showKeyboard() { 
if (edit != null) { 
     InputMethodManager imm = (InputMethodManager)mActivity.getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(edit.getWindowToken(), 0); 
    } 

    keyboardView.setVisibility(View.VISIBLE); 
    keyboardView.setEnabled(true); 
}