Android stavekontroll Tutorial

Android-plattformen tilbyr en stavekontrollen rammeverk som lar deg implementere og tilgang stavekontroll i programmet.

For å bruke stavekontrollen, må du innføre SpellCheckerSessionListener
grensesnitt og overstyre sine metoder. Syntaksen er gitt nedenfor:
public class HelloSpellCheckerActivity strekker aktivitet implementerer SpellCheckerSessionListener {Override public void onGetSuggestions (endelig SuggestionsInfo [] arg0) {//TODO Auto-generert metoden spire}Override public void onGetSentenceSuggestions (SentenceSuggestionsInfo [] arg0) {//TODO Auto-generert metoden spire}}

Neste ting du trenger å gjøre er å opprette et objekt av SpellCheckerSession
klasse. Dette objektet kan startes ved å ringe newSpellCheckerSession
metode for TextServicesManager klasse. Denne klassen håndterer samspillet mellom programmer og teksttjenester. Du må be systemtjeneste på å bruke den. Syntaksen er gitt nedenfor −
private SpellCheckerSession MSC, endelig TextServicesManager TSM = (TextServicesManager) getSystemService (Context.TEXT_SERVICES_MANAGER_SERVICE); MSC = tsm.newSpellCheckerSession (null, null, dette, true);

Det siste du trenger å gjøre er å ringe getSuggestions
metode for å få forslag til tekst, vil ha deg. Forslagene vil bli sendt på onGetSuggestions
metode hvor du kan gjøre hva du vil
mScs.getSuggestions (ny TextInfo (editText1.getText () toString ()), 3.);.

Denne metoden tar to parametre. Første parameter er strengen i form av tekst Info objekt, og andre parameteren er cookie som brukes til å skille forslag.

Bortsett fra de metodene, det finnes andre metoder som tilbys av SpellCheckerSession
klasse for bedre håndtering forslag. Disse metodene er listet nedenfor:
Sr.NoMethod & description1 Avbryt ()

Avbryt ventende og kjører stavekontroll oppgaver
2 close ()

Fullfør denne økten og tillate TextServicesManagerService å koble bundet stavekontroll
3 getSentenceSuggestions (TextInfo [] textInfos, int suggestionsLimit)

Få forslag fra de angitte setninger
4 getSpellChecker ()

Få stavekontroll serviceinfo dette stavekontroll sesjon har.
5 isSessionDisconnected ()

True hvis tilkoblingen til en teksttjeneste av denne økten er frakoblet og ikke i live.

Eksempel

Her er et eksempel som viser bruk av stavekontrollen. Det skaper en grunnleggende stavekontroll program som lar deg skrive tekst og få forslag.

For å eksperimentere med dette eksempelet, du kan kjøre dette på en faktisk enhet eller i en emulator.
StepsDescription1You vil bruke Android studio å lage en Android-applikasjon under en pakke com.example.sairamkrishna.myapplication. Mens du oppretter dette prosjektet, må du Target SDK og kompilere med på den nyeste versjonen av Android SDK for å bruke høyere nivåer av APIs.2Modify src /MainActivity.java fil for å legge nødvendig code.3Modify res /layout /hoved å legge respektive XML components4Run programmet og velge en som kjører android-enhet og installere programmet på den og kontrollere resultatene

Følgende er innholdet av den endrede hovedaktivitet fil src /MainActivity.java
.
pakken com.example.sairamkrishna.myapplication, import android.app.Activity, import android.app.ProgressDialog, import android.content.Context, importere android.os.Bundle, importere android.os.Handler, importere android. view.Menu, import android.view.MenuItem, import android.view.View, import android.view.textservice.TextInfo, import android.view.textservice.TextServicesManager, import android.widget.Button, import android.widget.EditText; import android.view.textservice.SentenceSuggestionsInfo, import android.view.textservice.SpellCheckerSession, import android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener, import android.view.textservice.SuggestionsInfo, import android.widget.TextView, import android.widget. toast; public class MainActivity strekker aktivitet implementerer SpellCheckerSessionListener {Button b1; TextView TV1; EditText ed1; private SpellCheckerSession MSC; Override Beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); b1 = (Button) findViewById (R.id.button); TV1 = (TextView) findViewById (R.id.textView3); ed1 = (EditText) findViewById (R.id.editText); . B1.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {Toast.makeText (getApplicationContext (), ed1.getText () toString (), Toast.LENGTH_SHORT) .vis (); MSC. getSuggestions (ny TextInfo (ed1.getText () toString ()), 3.);}}); } Public void onResume () {super.onResume (); endelig TextServicesManager TSM = (TextServicesManager) getSystemService (Context.TEXT_SERVICES_MANAGER_SERVICE); MSC = tsm.newSpellCheckerSession (null, null, dette, true); } Public void onPause () {super.onPause (); if (! MSC = null) {mScs.close (); }} Public void onGetSuggestions (endelig SuggestionsInfo [] arg0) {endelig Stringbuilder sb = new Stringbuilder (); for (int i = 0; i < arg0.length, ++ i) {//Returnerte forslag som er med i SuggestionsInfo final int len ​​= arg0 [i] .getSuggestionsCount (); sb.append ( '\\ n'); for (int j = 0; j < len, ++ j) {sb.append ( "," + arg0 [i] .getSuggestionAt (j)); } Sb.append ( "(" + len + ")"); } RunOnUiThread (ny kjørbart () {public void run () {tv1.append (sb.toString ());}}); }Override Public void onGetSentenceSuggestions (SentenceSuggestionsInfo [] arg0) {//TODO Auto-generert metoden spire}Override public boolean onCreateOptionsMenu (Meny menyen) {//Blås menyen; dette legger til elementer i handlingsfeltet hvis det er til stede. . GetMenuInflater () blåse (R.menu.menu_main, menyen); return true; }Override Public boolean onOptionsItemSelected (MENUITEM element) {//Håndtak handlingslinjen element klikk her. Handlingen bar vil //automatisk håndtere klikk på Hjem /Opp-knappen, så lenge //som du angir en forelder aktivitet i AndroidManifest.xml. int id = item.getItemId (); //Noinspection SimplifiableIfStatement if (id == R.id.action_settings) {return true; } Returnere super.onOptionsItemSelected (post); }}

Følgende er endret innholdet i xml res /layout /main.xml
< RelativeLayout xmlns:. Android = "http://schemas.android.com/apk/rES /android "xmlns: verktøy =" http://schemas.android.com/tools "android: layout_width =" match_parent "android: layout_height =" match_parent "android: paddingLeft =" @ dimen /activity_horizontal_margin "android: paddingRight =" @ dimen /activity_horizontal_margin "android: paddingTop =" @ dimen /activity_vertical_margin "android: paddingBottom =" @ dimen /activity_vertical_margin "verktøy: kontekst =" MainActivity ">. ≪ TextView android: text = "Stavekontroll" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /textview" android: Tekststørrelse = "35dp" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true" /> ≪ TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Guider point" android: id = "+ id /textView" android: layout_below = "+ id /textview" android: layout_centerHorizontal = "true" android: textcolor = "# ff7aff24" android: Tekststørrelse = "35dp" /> ≪ Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "forslag" android: id = "+ id /knapp" android: layout_alignParentBottom = "true" android: layout_centerHorizontal = "true" /> ≪ EditText android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /EditText" android: hint = "Enter Text" android: layout_above = "+ id /knapp" android: layout_marginBottom = "56dp" android: fokuserbar = "true" android: textColorHighlight = "# ff7eff15" android: textColorHint = "# ffff25e6" android: layout_alignRight = "+ id /textview" android: layout_alignEnd = "+ id /textview" android : layout_alignLeft = "+ id /textview" android: layout_alignStart = "+ id /textview" /> ≪ Imageview android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /bildeVis" android: src = "@ teikne /abc" android: layout_below = "+ id /textView" android : layout_centerHorizontal = "true" /> ≪ TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "forslag" android: id = "+ id /textView3" android: Tekststørrelse = "25sp" android: layout_below = "+ id /bildeVis "/> < /RelativeLayout >

følgende er innholdet i res /verdier /string.xml
. < ressurser > ≪ string name = "app_name" > Min Application < /string > ≪ string name = "hello_world" > Hei, verden <! /String > ≪ string name = "action_settings" > Innstillinger < /string > < /ressurser >

Følgende er innholdet av AndroidManifest.xml
fil
. ≪? Xml version = "1.0 "encoding =" utf-8 "> < manifest xmlns: android =" http://schemas.android.com/apk/res/android "pakken =" com.example.sairamkrishna.myapplication "> ≪ søknad android: allowBackup = "true" android: icon = "@ mipmap /ic_launcher" android: label = "@ string /app_name" android: tema = "@ stil /AppTheme" > ≪ aktivitet android: ". MainActivity" name = android: label = "@ string /app_name" > ≪ intent-filter > ≪ handling android: name = "android.intent.action.MAIN" /> ≪ kategorien android: name = "android.intent.category.LAUNCHER" /> ≪ /intent-filter > ≪ /aktivitet > ≪ /søknad > < /manifest >

La oss prøve å kjøre ourr søknaden vi bare endret. Jeg antar at du hadde laget din AVD
mens du gjør oppsett miljø. For å kjøre programmet fra Android studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Android studio installerer programmet på AVD og starter den, og hvis alt er bra med oppsettet og anvendelse, vil det vise følgende Emulator vindu og minus;

Nå hva du trenger å gjøre er å skrive en tekst i feltet . For eksempel har jeg skrevet inn litt tekst. Trykk på knappen forslag. Følgende melding vil vises i deg avd sammen med forslag og minus;

Nå endre teksten og trykk på knappen igjen, som jeg gjorde. Og dette er hva som kommer på skjermen.