Android platformu, yazım denetleyicisi çerçevesi sunar ve uygulamanızda yazım denetimi uygulayın ve erişin. Çerçeve, proje yönetiminin Text Service API'leri vardır.
Bu çerçeveyi uygulamanızda kullanmak için şu özelliklere sahip bir Android hizmeti oluşturursunuz: bir yazım denetleyici session nesnesi oluşturur. Sağladığınız metne göre oturum nesnesi, yazım tarafından oluşturulan yazım önerilerini döndürür kontrol eder.
Yazım denetleyicisinin yaşam döngüsü
Aşağıdaki şemada, yazım denetleyici hizmetinin yaşam döngüsü gösterilmektedir:
Uygulamanız yazım denetimini başlatmak için yazım denetimini uygulamaya başlar kontrol hizmeti sunar. Uygulamanızdaki istemciler (ör. etkinlikler veya bireysel kullanıcı arayüzü) öğelerini kullanın, hizmetten bir yazım denetleyicisi oturumu isteyin ve metin önerileri alabilirsiniz. Bir istemci çalışmasını sonlandırdığında oturumunda görüntüleyebilirsiniz. Gerekirse uygulamanız yazımı kapatabilir kontrol edebilirsiniz.
Yazım denetleyici hizmeti uygulama
Uygulamanızda yazım denetleyici çerçevesini kullanmak için yazım denetleyici hizmeti ekleyin oturum nesnesi tanımını içeren bileşendir. Ayrıca bir Uygulamanızda, ayarları kontrol eden isteğe bağlı etkinlik. XML meta veri dosyası ekleme belirten bir e-posta bulun ve uygun öğeleri manifest dosyanız.
Yazım denetimi dersleri
Aşağıdaki sınıflarla hizmeti ve oturum nesnesini tanımlayın:
-
- A alt sınıfı
SpellCheckerService
.SpellCheckerService
, hemService
sınıfını ve yazım denetleyicisi çerçeve arayüzünü içerir. Alt sınıfınızda aşağıdaki yöntemi uygulayın:createSession()
- Bir
SpellCheckerService.Session
nesnesini, aşağıdaki özelliklere sahip bir istemciye yazımı denetlemek istiyor.
- A alt sınıfı
-
- Uygulanması
SpellCheckerService.Session
.- Yazım denetleyici hizmetinin istemcilerin izin vermesi için sağladığı bir nesne metni yazım denetleyiciye ileterek öneriler almasını sağlar. Bunun içinde aşağıdaki yöntemleri uygulayın:
onCreate()
- Sistem tarafından şuna yanıt olarak çağrıldı:
createSession()
. Bu yöntemde ilk kullanıma hazırlaSpellCheckerService.Session
nesnesini geçerli yerel ayar ve diğer ayrıntılar. onGetSentenceSuggestionsMultiple()
- Asıl yazım denetimini gerçekleştirir. Bu yöntem
SentenceSuggestionsInfo
. içeren bir e-posta alırsınız.
İsteğe bağlı olarak,
onCancel()
, Yazım denetimini iptal etme isteklerini işleyen;onGetSuggestions()
, kelime önerisi isteğini işler; veyaonGetSuggestionsMultiple()
, kelime önerisi isteklerini işler. ziyaret edin.
- Uygulanması
Yazım denetimi manifesti ve meta veriler
Koda ek olarak, uygun manifest dosyasını ve bir meta veri sağlayın dosyası olarak ekleyebilirsiniz.
Manifest dosyası uygulamayı, hizmeti ve etkinliği tanımlar. aşağıdaki örnekte gösterildiği gibi, ayarları denetleme:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.samplespellcheckerservice" > <application android:label="@string/app_name" > <service android:label="@string/app_name" android:name=".SampleSpellCheckerService" android:permission="android.permission.BIND_TEXT_SERVICE" > <intent-filter > <action android:name="android.service.textservice.SpellCheckerService" /> </intent-filter> <meta-data android:name="android.view.textservice.scs" android:resource="@xml/spellchecker" /> </service> <activity android:label="@string/sample_settings" android:name="SpellCheckerSettingsActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> </application> </manifest>
Hizmeti kullanmak isteyen bileşenlerin izin istemesi gerekir
BIND_TEXT_SERVICE
.
yalnızca sistemin hizmete bağlandığından emin olun. Hizmetin tanımı
Ayrıca, spellchecker.xml
meta veri dosyasını da belirtir;
sonraki bölümde açıklanmıştır.
spellchecker.xml
meta veri dosyası şunları içerir:
XML:
<spell-checker xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/spellchecker_name" android:settingsActivity="com.example.SpellCheckerSettingsActivity"> <subtype android:label="@string/subtype_generic" android:subtypeLocale="en” /> <subtype android:label="@string/subtype_generic" android:subtypeLocale="fr” /> </spell-checker>
Meta veri, yazım denetleyicisinin kontrol etmek için kullandığı etkinliği belirtir. Ayarlar'da devre dışı bırakabilirsiniz. Ayrıca yazım denetleyici için alt türleri de tanımlar. Bu durumda, alt türler, yazım denetleyicisinin işleyebileceği yerel ayarları tanımlar.
İstemciden yazım denetleyici hizmetine erişme
kullanan bazı uygulamalar
TextView
ve
EditText
görüntülemeler yazım denetiminden otomatik olarak faydalanır, çünkü TextView
otomatik olarak bir yazım denetleyicisi kullanır:
Ancak isterseniz bir yazım denetleyici hizmetiyle doğrudan etkileşimde bulunabilirsiniz. durumlarda işe yarar. Aşağıdaki şemada, etkileşim için kontrol akışı gösterilmektedir yazım denetleyici hizmetiyle:
İlgili içeriği oluşturmak için kullanılan Latince Android Açık Kaynak Projesi'ndeki giriş yöntemi düzenleyicisi yazım denetimi yapma.