サンプルは実際にはあなたが必要とするものと同様に構造化されていますが、わかりませんがそれを打破してみましょう - ここに完全スタブは、入力メソッドのサービスとして動作し、標準のXMLキーボードを使用することです:2つのXML文書に名前が付いていることを
import android.inputmethodservice.InputMethodService;
import android.inputmethodservice.Keyboard;
public class MyInputMethod extends InputMethodService {
private Keyboard mKeyboard;
@Override public void onInitializeInterface() {
mKeyboard = new Keyboard(this, R.xml.qwerty);
}
@Override public View onCreateInputView() {
mInputView = (KeyboardView) getLayoutInflater().inflate(
R.layout.input, null);
mInputView.setKeyboard(mKeyboard);
return mInputView;
}
}
注意。最初のres/xml/qwerty.xml
は、KeyboardView
クラスがキーボードの描画方法を知るようにレイアウトを定義しています。
しかし、それは膨張し、レイアウト、res/layout/input.xml
、(簡体字)これで構成されています
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
<android.inputmethodservice.KeyboardView android:id="@+id/keyboard" />
</LinearLayout>
これは、あなたが宣言ビューを作成するために必要なすべてのです!スタンドアロンのView
を作成することは、Activity
を作成することとあまり変わりません。標準アクティビティライフサイクルはありませんが、どちらの環境でもXMLレイアウトにアクセスできます。インフレータを使用し、必要なサブビューを参照してメインビューを返すだけです。
これを考えた後、あなたのレイアウトを膨らませることができればうれしいです。
レイアウトが単純な場合でもXMLレイアウトを使用する必要はありません。入力方法がで、1つのビューの全体がの場合は、直接onCreateInputView
にインスタンス化できます。ここでは任意のXMLを使用していない完全スタブの入力方法サービスです:
public class MyInputMethod extends InputMethodService {
MyView view;
@Override
public View onCreateInputView() {
return view = new MyView(this);
}
}
(もちろんマニフェストで定型とres/xml/method.xml
ファイルがまだ存在することになる。)
設定する方法を、私を助けてくださいあなた自身のキーボード?私は別のアプリケーションを使用して行っている。私はテキストボックス(左または右)の近くに小さなキーボードを表示したい。これは私の質問です。 http://stackoverflow.com/questions/7357876/set-keyboard-coordination-how-to-set-the-keyboard-xy-coordination私は自分のキーボードでAndroid APIデモを使っています... – Piraba