IInputConnection インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod
通信チャネルです。
[Android.Runtime.Register("android/view/inputmethod/InputConnection", "", "Android.Views.InputMethods.IInputConnectionInvoker")]
public interface IInputConnection : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/view/inputmethod/InputConnection", "", "Android.Views.InputMethods.IInputConnectionInvoker")>]
type IInputConnection = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 派生
- 属性
- 実装
注釈
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの InputMethod
通信チャネルです。 カーソルの周囲のテキストの読み取り、テキスト ボックスへのテキストのコミット、アプリケーションへの生のキー イベントの送信などを実行するために使用されます。
API レベル android.os.Build.VERSION_CODES#N
から開始すると、システムは、アプリケーションがこのクラスを直接実装するが、次の 1 つ以上のメソッドが実装されていない状況に対処できます。
<で導入された ul><li>#getSelectedText(int)
。<android.os.Build.VERSION_CODES#GINGERBREAD
で導入された /li><li>#setComposingRegion(int, int)
。<android.os.Build.VERSION_CODES#GINGERBREAD
で導入された /li><li>#commitCorrection(CorrectionInfo)
。<android.os.Build.VERSION_CODES#HONEYCOMB
で導入された /li><li>#requestCursorUpdates(int)
。<android.os.Build.VERSION_CODES#LOLLIPOP
で導入された /li><li>#deleteSurroundingTextInCodePoints(int, int)
。<android.os.Build.VERSION_CODES#N
で導入された /li><li>#getHandler()
。<android.os.Build.VERSION_CODES#N
で導入された /li><li>#closeConnection()
。<android.os.Build.VERSION_CODES#N
で導入された /li><li>#commitContent(InputContentInfo, int, Bundle)
。<android.os.Build.VERSION_CODES#N_MR1
/li></ul>
<h3>IME またはエディター<の実装/h3>
テキスト入力は、入力メソッド エンジン (IME) とエディターという 2 つの重要なコンポーネントの相乗効果の結果です。 IME には、ソフトウェア キーボード、手書きインターフェイス、絵文字パレット、音声テキスト変換エンジンなどがあります。 通常、特定の Android デバイスには複数の IME がインストールされています。 Android では、IME は拡張 android.inputmethodservice.InputMethodService
されます。 IME の作成方法の詳細については、「入力方法の作成」ガイドを参照してください。
エディターは、テキストを受け取って表示するコンポーネントです。 通常、これは android.widget.EditText
インスタンスですが、アプリケーションによっては、さまざまな理由で独自のエディターを実装することを選択する場合があります。 これは大規模で複雑なタスクであり、これを行うアプリケーションは、Android の標準的な EditText 動作と動作が一致していることを確認する必要があります。 エディターは、IME と対話し、この InputConnection インターフェイスを介してコマンドを受信し、コマンドを送信する android.view.inputmethod.InputMethodManager
必要があります。 エディターは、独自の入力接続を返すために実装 android.view.View#onCreateInputConnection(EditorInfo)
することから始める必要があります。
独自の IME を実装する場合は、このインターフェイスのメソッドを呼び出してアプリケーションを操作する必要があります。 一部のアプリケーションには対処が必要な特殊性があるため、ブラウザーやリッチ テキスト エディターなど、さまざまなアプリケーションで IME をテストしてください。 IME がテキストの変更の唯一のソースではない可能性があることを思い出してください。送信するデータではできるだけ保守的に、受信したデータではできるだけ自由にしてください。
独自のエディターを実装する場合は、おそらく、IME からのコマンドに応答するための独自の BaseInputConnection
サブクラスを提供する必要があります。 できる限り多くの IME でエディターをテストしてください。その動作はさまざまです。 また、入力要件が異なる場合があるため、CJK 言語やアラビア語などの右から左の言語など、さまざまな言語でテストしてください。 特定の呼び出しに採用する必要がある動作が不明な場合は、最新の Android バージョンの既定の TextView 実装を模倣してください。そこから誤差が生じる場合は、テキスト エディターの動作の不整合がユーザーによってほとんど一般的に悪いものとして感じられることを慎重に検討してください。
<h3>カーソル、選択範囲、コンポジション</h3>
Android では、カーソルと選択範囲は同じものです。 "cursor" は、サイズが 0 の選択の特殊なケースにすぎません。 そのため、このドキュメントではそれらを同じ意味で使用します。 ある場合、"カーソルの前" を動作するメソッドは選択範囲の開始前に動作し、"カーソルの後" を動作するメソッドは選択範囲の終了後に動作します。
エディターは、Standard Edition ウィジェットと同様に、現在 "作成中" リージョンを追跡できる必要があります。 コンポジションは特定のスタイルでマークされています。android.text.Spanned#SPAN_COMPOSING
IME はこれを使用して、ユーザーが現在フォーカスしているテキストの一部を追跡し、〘を使用してInputConnection#setComposingText(CharSequence, int)
InputConnection#setComposingRegion(int, int)
エディターとInputConnection#finishComposingText()
対話するのに役立ちます。 構成領域と選択範囲は互いに完全に独立しており、IME では、それらが適合しているかのように使用できます。
の Java ドキュメントandroid.view.inputmethod.InputConnection
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
プロパティ
Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
Handler |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
JniIdentityHashCode |
ラップされたインスタンスの |
JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
PeerReference |
ラップされた Java オブジェクト インスタンスの a JniObjectReference を返します。 (継承元 IJavaPeerable) |
メソッド
BeginBatchEdit() |
エディター操作のバッチを開始していることをエディターに伝えます。 |
ClearMetaKeyStates(MetaKeyStates) |
指定された入力接続で、特定のメタ キーが押された状態をクリアします。 |
CloseConnection() |
システムが入力メソッドとアプリケーション間の接続を無効にしようとしていることを通知するために、システムによって最大 1 回だけ呼び出されます。 |
CommitCompletion(CompletionInfo) |
ユーザーが以前に報告した候補から選択した完了を |
CommitContent(InputContentInfo, InputContentFlags, Bundle) |
PNG イメージなどのコンテンツをエディターにコミットするために、入力メソッドによって呼び出されます。 |
CommitCorrection(CorrectionInfo) |
生ユーザーの入力に対して自動的に実行される修正をコミットします。 |
CommitText(ICharSequence, Int32) |
テキスト をテキスト ボックスにコミットし、新しいカーソル位置を設定します。 |
CommitText(ICharSequence, Int32, TextAttribute) |
の |
CommitText(String, Int32, TextAttribute) |
の |
DeleteSurroundingText(Int32, Int32) |
<現在のカーソル位置の前にあるテキストの var>beforeLength</var> 文字を削除し、現在のカーソル位置の後のテキストの var>afterLength</var> 文字を削除<します (選択範囲を除く)。 |
DeleteSurroundingTextInCodePoints(Int32, Int32) |
のバリアント |
Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、呼び出 |
EndBatchEdit() |
以前に開始 |
Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
FinishComposingText() |
現在アクティブなテキストを作成している場合は、テキスト エディターで完了させます。 |
GetCursorCapsMode(CapitalizationMode) |
テキスト内の現在のカーソル位置で有効な現在の大文字と小文字の設定モードを取得します。 |
GetExtractedText(ExtractedTextRequest, GetTextFlags) |
入力接続のエディターで現在のテキストを取得し、その変更を監視します。 |
GetSelectedTextFormatted(GetTextFlags) |
選択したテキスト (存在する場合) を取得します。 |
GetSurroundingText(Int32, Int32, Int32) |
カーソルの前のテキストの var>beforeLength</var> 文字 (選択範囲の先頭)<、<カーソルの後のテキストの var>afterLength</var> 文字 (選択範囲の末尾)、および選択したすべてのテキストを含む、現在のカーソルの周囲のテキストを取得します。 |
GetTextAfterCursorFormatted(Int32, GetTextFlags) |
現在のカーソル位置の後のテキストの var>n</var> 文字を取得<します。 |
GetTextBeforeCursorFormatted(Int32, GetTextFlags) |
現在のカーソル位置の前にあるテキストの var>n</var> 文字を取得<します。 |
PerformContextMenuAction(Int32) |
フィールドに対してコンテキスト メニュー アクションを実行します。 |
PerformEditorAction(ImeAction) |
エディターに、実行可能と言ったアクションを実行してもらう。 |
PerformHandwritingGesture(HandwritingGesture, IExecutor, IIntConsumer) |
テキストに対して手書きジェスチャを実行します。 |
PerformPrivateCommand(String, Bundle) |
入力メソッドから接続されたエディターにプライベート コマンドを送信する API。 |
PerformSpellCheck() |
エディターで完全なコンテンツのスペル チェックを実行します。 |
PreviewHandwritingGesture(PreviewableHandwritingGesture, CancellationSignal) |
テキストの手書きジェスチャをプレビューします。 |
ReplaceText(Int32, Int32, ICharSequence, Int32, TextAttribute) |
エディターの特定の範囲を、推奨されるテキストに置き換えます。 |
ReplaceText(Int32, Int32, String, Int32, TextAttribute) |
エディターの特定の範囲を、推奨されるテキストに置き換えます。 |
ReportFullscreenMode(Boolean) |
接続されている IME が全画面表示モードと通常モードを切り替えたときに呼び出されます。 |
RequestCursorUpdates(Int32) |
カーソル/アンカーの位置を通知する呼び出 |
RequestCursorUpdates(Int32, Int32) |
カーソル/アンカーの位置を通知する呼び出 |
RequestTextBoundsInfo(RectF, IExecutor, IConsumer) |
入力メソッドによって呼び出され、 |
SendKeyEvent(KeyEvent) |
この入力接続を介して現在アタッチされているプロセスにキー イベントを送信します。 |
SetComposingRegion(Int32, Int32) |
テキストの特定の領域を作成テキストとしてマークします。 |
SetComposingRegion(Int32, Int32, TextAttribute) |
の |
SetComposingText(ICharSequence, Int32) |
現在作成中のテキストを特定のテキストに置き換え、新しいカーソル位置を設定します。 |
SetComposingText(ICharSequence, Int32, TextAttribute) |
の |
SetComposingText(String, Int32, TextAttribute) |
の |
SetImeConsumesInput(Boolean) |
入力メソッドによって呼び出され、それ自体のすべての入力が使用されるか、使用されなくなったことを示します。 |
SetJniIdentityHashCode(Int32) |
によって |
SetJniManagedPeerState(JniManagedPeerStates) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
SetPeerReference(JniObjectReference) |
によって |
SetSelection(Int32, Int32) |
テキスト エディターの選択を設定します。 |
TakeSnapshot() |
アトミックな方法で複数のテキスト関連データのスナップショットを取得する必要がある場合に、システムによって呼び出されます。 |
UnregisterFromRuntime() |
ランタイムが将来 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
CommitText(IInputConnection, String, Int32) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
CommitText(IInputConnection, String, Int32, TextAttribute) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
GetSelectedText(IInputConnection, GetTextFlags) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
GetTextAfterCursor(IInputConnection, Int32, GetTextFlags) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
ReplaceText(IInputConnection, Int32, Int32, String, Int32, TextAttribute) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
SetComposingText(IInputConnection, String, Int32) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
SetComposingText(IInputConnection, String, Int32, TextAttribute) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
JavaCast<TResult>(IJavaObject) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |
GetJniTypeName(IJavaPeerable) |
InputConnection インターフェイスは、入力を受信しているアプリケーションへのバックからの |