Yazım denetleyici çerçevesi

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:

Yazım denetleyici hizmetinin yaşam döngüsünü gösteren resim
Şekil 1. Yazım denetleyici hizmeti yaşam döngüsü boyunca geçerlidir.

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, hem Service 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.
  • 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ırla SpellCheckerService.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; veya onGetSuggestionsMultiple(), kelime önerisi isteklerini işler.

  • ziyaret edin.
'nı inceleyin.

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:

Yazım denetleyicisinin EditText&#39;te otomatik olarak nasıl etkinleştirildiğini gösteren resim
Şekil 2. Yazım denetimi EditText

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:

Yazım denetleyici hizmetiyle etkileşim şemasını gösteren resim
Şekil 3. Yazım denetleyici ile etkileşim geliştirmenizi sağlar.

İ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.