IInputConnection Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Antarmuka InputConnection adalah saluran komunikasi dari InputMethod kembali ke aplikasi yang menerima inputnya.
[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
- Turunan
- Atribut
- Penerapan
Keterangan
Antarmuka InputConnection adalah saluran komunikasi dari InputMethod kembali ke aplikasi yang menerima inputnya. Ini digunakan untuk melakukan hal-hal seperti membaca teks di sekitar kursor, menerapkan teks ke kotak teks, dan mengirim peristiwa kunci mentah ke aplikasi.
Mulai dari API Level android.os.Build.VERSION_CODES#N, sistem dapat menangani situasi di mana aplikasi secara langsung mengimplementasikan kelas ini tetapi satu atau beberapa metode berikut tidak diimplementasikan.
<ul><li>#getSelectedText(int), yang diperkenalkan di android.os.Build.VERSION_CODES#GINGERBREAD.<Li Li><, yang diperkenalkan di >.#setComposingRegion(int, int)android.os.Build.VERSION_CODES#GINGERBREAD<Li Li><, yang diperkenalkan di >.#commitCorrection(CorrectionInfo)android.os.Build.VERSION_CODES#HONEYCOMB<Li Li><, yang diperkenalkan di >.#requestCursorUpdates(int)android.os.Build.VERSION_CODES#LOLLIPOP<Li Li><, yang diperkenalkan di >.#deleteSurroundingTextInCodePoints(int, int)android.os.Build.VERSION_CODES#N<Li Li><, yang diperkenalkan di >.#getHandler()android.os.Build.VERSION_CODES#N<Li Li><, yang diperkenalkan di >.#closeConnection()android.os.Build.VERSION_CODES#N<Li Li><, yang diperkenalkan di >.#commitContent(InputContentInfo, int, Bundle)android.os.Build.VERSION_CODES#N_MR1</li></ul>
<h3>Menerapkan IME atau editor</h3>
Input teks adalah hasil dari sinergi dua komponen penting: Mesin Metode Input (IME) dan editor. IME dapat berupa keyboard perangkat lunak, antarmuka tulisan tangan, palet emoji, mesin ucapan ke teks, dan sebagainya. Biasanya ada beberapa IMEs yang diinstal pada perangkat Android tertentu. Di Android, IMEs memperluas android.inputmethodservice.InputMethodService. Untuk informasi selengkapnya tentang cara membuat IME, lihat panduan Membuat metode input .
Editor adalah komponen yang menerima teks dan menampilkannya. Biasanya, ini adalah android.widget.EditText instans, tetapi beberapa aplikasi dapat memilih untuk menerapkan editor mereka sendiri karena berbagai alasan. Ini adalah tugas besar dan rumit, dan aplikasi yang melakukan ini perlu memastikan perilaku konsisten dengan perilaku EditText standar di Android. Editor perlu berinteraksi dengan IME, menerima perintah melalui antarmuka InputConnection ini, dan mengirim perintah melalui android.view.inputmethod.InputMethodManager. Editor harus mulai dengan menerapkan android.view.View#onCreateInputConnection(EditorInfo) untuk mengembalikan koneksi inputnya sendiri.
Jika Anda menerapkan IME Anda sendiri, Anda harus memanggil metode dalam antarmuka ini untuk berinteraksi dengan aplikasi. Pastikan untuk menguji IME Anda dengan berbagai aplikasi, termasuk browser dan editor teks kaya, karena beberapa mungkin memiliki kekhasan yang perlu Anda tangani. Ingat IME Anda mungkin bukan satu-satunya sumber perubahan pada teks, dan cobalah untuk sekonservatif mungkin dalam data yang Anda kirim dan sebebas mungkin dalam data yang Anda terima.
Jika Anda menerapkan editor Anda sendiri, Anda mungkin perlu memberikan subkelas BaseInputConnection Anda sendiri untuk menjawab perintah dari IMEs. Pastikan untuk menguji editor Anda dengan IMEs sebanyak yang Anda bisa karena perilakunya dapat sangat bervariasi. Pastikan juga untuk menguji dengan berbagai bahasa, termasuk bahasa CJK dan bahasa kanan-ke-kiri seperti Arab, karena ini mungkin memiliki persyaratan input yang berbeda. Ketika ragu tentang perilaku yang harus Anda adopsi untuk panggilan tertentu, silakan meniru implementasi TextView default dalam versi Android terbaru, dan jika Anda memutuskan untuk menyimpang darinya, harap pertimbangkan dengan hati-hati bahwa inkonsistensi dalam perilaku editor teks hampir secara universal dirasakan sebagai hal yang buruk oleh pengguna.
<h3>Kursor, pilihan, dan komposisi</h3>
Di Android, kursor dan pilihan adalah satu dan hal yang sama. "Kursor" hanyalah kasus khusus dari pilihan berukuran nol. Dengan demikian, dokumentasi ini menggunakannya secara bergantian. Metode apa pun yang bertindak "sebelum kursor" akan bertindak sebelum awal pilihan jika ada, dan metode apa pun yang bertindak "setelah kursor" akan bertindak setelah akhir pilihan.
Editor harus dapat melacak wilayah yang saat ini "menyusun", seperti yang dilakukan widget edisi standar. Komposisi ditandai dalam gaya tertentu: lihat android.text.Spanned#SPAN_COMPOSING. IMEs menggunakan ini untuk membantu pengguna melacak bagian teks apa yang saat ini mereka fokuskan, dan berinteraksi dengan editor menggunakan InputConnection#setComposingText(CharSequence, int), InputConnection#setComposingRegion(int, int) dan InputConnection#finishComposingText(). Wilayah pembuatan dan pemilihan benar-benar independen satu sama lain, dan IME dapat menggunakannya namun sesuai.
Java dokumentasi untuk android.view.inputmethod.InputConnection.
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.
Properti
| Nama | Deskripsi |
|---|---|
| Handle |
Mendapatkan nilai JNI dari objek Android yang mendasar. (Diperoleh dari IJavaObject) |
| Handler |
Antarmuka InputConnection adalah saluran komunikasi dari |
| JniIdentityHashCode |
Mengembalikan nilai |
| JniManagedPeerState |
Status serekan terkelola. (Diperoleh dari IJavaPeerable) |
| JniPeerMembers |
Akses anggota dan dukungan pemanggilan. (Diperoleh dari IJavaPeerable) |
| PeerReference |
Mengembalikan instans objek Java yang dibungkusJniObjectReference. (Diperoleh dari IJavaPeerable) |
Metode
| Nama | Deskripsi |
|---|---|
| BeginBatchEdit() |
Beri tahu editor bahwa Anda memulai batch operasi editor. |
| ClearMetaKeyStates(MetaKeyStates) |
Hapus status tombol meta yang diberikan yang ditekan dalam koneksi input yang diberikan. |
| CloseConnection() |
Dipanggil oleh sistem hingga hanya sekali untuk memberi tahu bahwa sistem akan membatalkan koneksi antara metode input dan aplikasi. |
| CommitCompletion(CompletionInfo) |
Terapkan penyelesaian yang telah dipilih pengguna dari kemungkinan yang sebelumnya dilaporkan ke |
| CommitContent(InputContentInfo, InputContentFlags, Bundle) |
Dipanggil oleh metode input untuk menerapkan konten seperti gambar PNG ke editor. |
| CommitCorrection(CorrectionInfo) |
Lakukan koreksi yang dilakukan secara otomatis pada input pengguna mentah. |
| CommitText(ICharSequence, Int32, TextAttribute) |
Varian . |
| CommitText(ICharSequence, Int32) |
Terapkan teks ke kotak teks dan atur posisi kursor baru. |
| CommitText(String, Int32, TextAttribute) |
Varian . |
| DeleteSurroundingText(Int32, Int32) |
Hapus <karakter teks var>beforeLength</var> sebelum posisi kursor saat ini, dan hapus <karakter teks var>afterLength</var> setelah posisi kursor saat ini, tidak termasuk pilihan. |
| DeleteSurroundingTextInCodePoints(Int32, Int32) |
Varian . |
| Disposed() |
Dipanggil ketika instans telah dibuang. (Diperoleh dari IJavaPeerable) |
| DisposeUnlessReferenced() |
Jika tidak ada referensi yang luar biasa untuk instans ini, maka panggilan |
| EndBatchEdit() |
Beri tahu editor bahwa Anda sudah selesai dengan pengeditan batch yang sebelumnya dimulai dengan |
| Finalized() |
Dipanggil ketika instans telah diselesaikan. (Diperoleh dari IJavaPeerable) |
| FinishComposingText() |
Minta editor teks menyelesaikan apa pun yang menyusun teks saat ini aktif. |
| GetCursorCapsMode(CapitalizationMode) |
Ambil mode kapitalisasi saat ini yang berlaku pada posisi kursor saat ini dalam teks. |
| GetExtractedText(ExtractedTextRequest, GetTextFlags) |
Ambil teks saat ini di editor koneksi input, dan pantau perubahan apa pun padanya. |
| GetSelectedTextFormatted(GetTextFlags) |
Mendapatkan teks yang dipilih, jika ada. |
| GetSurroundingText(Int32, Int32, Int32) |
Mendapatkan teks di sekitar kursor saat ini, dengan <karakter teks var>beforeLength</var> sebelum kursor (awal pilihan), <var>afterLength</var> karakter teks setelah kursor (akhir pilihan), dan semua teks yang dipilih. |
| GetTextAfterCursorFormatted(Int32, GetTextFlags) |
Dapatkan <karakter teks var>n</var> setelah posisi kursor saat ini. |
| GetTextBeforeCursorFormatted(Int32, GetTextFlags) |
Dapatkan <karakter teks var>n</var> sebelum posisi kursor saat ini. |
| PerformContextMenuAction(Int32) |
Lakukan tindakan menu konteks pada bidang . |
| PerformEditorAction(ImeAction) |
Minta editor melakukan tindakan yang dikatakannya dapat dilakukan. |
| PerformHandwritingGesture(HandwritingGesture, IExecutor, IIntConsumer) |
Lakukan gerakan tulisan tangan pada teks. |
| PerformPrivateCommand(String, Bundle) |
API untuk mengirim perintah privat dari metode input ke editor yang terhubung. |
| PerformSpellCheck() |
Minta editor melakukan pemeriksaan ejaan untuk konten lengkap. |
| PreviewHandwritingGesture(PreviewableHandwritingGesture, CancellationSignal) |
Pratinjau gerakan tulisan tangan pada teks. |
| ReplaceText(Int32, Int32, ICharSequence, Int32, TextAttribute) |
Ganti rentang tertentu di editor dengan teks yang disarankan. |
| ReplaceText(Int32, Int32, String, Int32, TextAttribute) |
Ganti rentang tertentu di editor dengan teks yang disarankan. |
| ReportFullscreenMode(Boolean) |
Dipanggil kembali ketika IME yang terhubung beralih antara mode layar penuh dan normal. |
| RequestCursorUpdates(Int32, Int32) |
Dipanggil oleh metode input untuk meminta editor memanggil kembali |
| RequestCursorUpdates(Int32) |
Dipanggil oleh metode input untuk meminta editor memanggil kembali |
| RequestTextBoundsInfo(RectF, IExecutor, IConsumer) |
Dipanggil dengan metode input untuk meminta |
| SendKeyEvent(KeyEvent) |
Kirim peristiwa kunci ke proses yang saat ini dilampirkan melalui koneksi input ini. |
| SetComposingRegion(Int32, Int32, TextAttribute) |
Varian . |
| SetComposingRegion(Int32, Int32) |
Tandai wilayah teks tertentu sebagai menyusun teks. |
| SetComposingText(ICharSequence, Int32, TextAttribute) |
Varian . |
| SetComposingText(ICharSequence, Int32) |
Ganti teks yang sedang menyusun dengan teks yang diberikan, dan atur posisi kursor baru. |
| SetComposingText(String, Int32, TextAttribute) |
Varian . |
| SetImeConsumesInput(Boolean) |
Dipanggil oleh metode input untuk menunjukkan bahwa ia mengonsumsi semua input untuk dirinya sendiri, atau tidak lagi melakukannya. |
| SetJniIdentityHashCode(Int32) |
Atur nilai yang dikembalikan oleh |
| SetJniManagedPeerState(JniManagedPeerStates) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| SetPeerReference(JniObjectReference) |
Atur nilai yang dikembalikan oleh |
| SetSelection(Int32, Int32) |
Atur pilihan editor teks. |
| TakeSnapshot() |
Dipanggil oleh sistem ketika perlu mengambil rekam jepret dari beberapa data terkait teks dengan cara atomik. |
| UnregisterFromRuntime() |
Batalkan pendaftaran instans ini sehingga runtime tidak akan mengembalikannya dari pemanggilan di masa mendatang Java.Interop.JniRuntime+JniValueManager.PeekValue . (Diperoleh dari IJavaPeerable) |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| CommitText(IInputConnection, String, Int32, TextAttribute) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| CommitText(IInputConnection, String, Int32) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| GetSelectedText(IInputConnection, GetTextFlags) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| GetTextAfterCursor(IInputConnection, Int32, GetTextFlags) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| GetTextBeforeCursor(IInputConnection, Int32, GetTextFlags) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| ReplaceText(IInputConnection, Int32, Int32, String, Int32, TextAttribute) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| SetComposingText(IInputConnection, String, Int32, TextAttribute) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| SetComposingText(IInputConnection, String, Int32) |
Antarmuka InputConnection adalah saluran komunikasi dari |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |