2011-01-14 19 views
1

私はAndroidアプリケーションを開発するのが非常に新しいですし、私は 難題に直面しています。カスタマイズされたキーボード

私がしたいことは、 EditTextをクリックしたときに特定のキーボードを使用することです。これまでのところ、私はKeyboardKeyboardView クラスを見つけましたが、私はまだ私がしたいことをすることに成功していません。ここで

は私がどこの説明である:

  • 私は
  • 、私は「KeyboardView」オブジェクトを作成
  • 、XMLファイルで私のキーボードを記載している私は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); 

あなたが利用可能inputTypehereを読むことができます。

1

最初に、あなたがキーボードから欲しいものを決める必要があります。

あなたがちょうどあなたが完全にカスタマイズされたキーボードをしたい場合はMacarse
から最初の答えであなたがKeyboardを使用する必要があることを行うことができます番号を変更したい場合同様のレイアウトxmlファイルと

//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() {} 
    }); 

:あなたはこのようなものを使用する必要があります目のプロジェクトによるとKeyboardViewクラス

2

これに:

あなたはクラヴィーア=新しいKeyboardView(活動、 (属性セット)findViewById(R.xml.clavier_numerique)、のEditText編集)で初期化し
<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

。 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); 
} 
関連する問題