Android - Pemeriksa Ejaan

Platform Android menawarkan kerangka pemeriksa ejaan yang memungkinkan Anda menerapkan dan mengakses pemeriksaan ejaan dalam aplikasi Anda.

Untuk menggunakan pemeriksa ejaan, Anda perlu menerapkan SpellCheckerSessionListenerantarmuka dan mengganti metodenya. Sintaksnya diberikan di bawah ini -

public class HelloSpellCheckerActivity extends Activity implements SpellCheckerSessionListener {
   @Override
   public void onGetSuggestions(final SuggestionsInfo[] arg0) {
      // TODO Auto-generated method stub
   }
   
   @Override
   public void onGetSentenceSuggestions(SentenceSuggestionsInfo[] arg0) {
      // TODO Auto-generated method stub
   }
}

Hal berikutnya yang perlu Anda lakukan adalah membuat objek SpellCheckerSessionkelas. Objek ini dapat dibuat instance-nya dengan memanggilnewSpellCheckerSessionmetode kelas TextServicesManager. Kelas ini menangani interaksi antara aplikasi dan layanan teks. Anda perlu meminta layanan sistem untuk membuatnya. Sintaksnya diberikan di bawah ini -

private SpellCheckerSession mScs;
final TextServicesManager tsm = (TextServicesManager) getSystemService(
Context.TEXT_SERVICES_MANAGER_SERVICE);
mScs = tsm.newSpellCheckerSession(null, null, this, true);

Hal terakhir yang perlu Anda lakukan adalah menelepon getSuggestionsmetode untuk mendapatkan saran untuk teks apa pun, yang Anda inginkan. Saran akan diteruskan keonGetSuggestions metode dari mana Anda dapat melakukan apa pun yang Anda inginkan.

mScs.getSuggestions(new TextInfo(editText1.getText().toString()), 3);

Metode ini membutuhkan dua parameter. Parameter pertama adalah string berupa objek Text Info, dan parameter kedua adalah nomor cookie yang digunakan untuk membedakan saran.

Selain metode, ada metode lain yang disediakan oleh SpellCheckerSessionkelas untuk saran penanganan yang lebih baik. Metode ini tercantum di bawah -

Sr Tidak Metode & deskripsi
1

cancel()

Batalkan tugas pemeriksaan ejaan yang tertunda dan menjalankan

2

close()

Selesaikan sesi ini dan izinkan TextServicesManagerService memutuskan koneksi pemeriksa ejaan terikat

3

getSentenceSuggestions(TextInfo[] textInfos, int suggestionsLimit)

Dapatkan saran dari kalimat yang ditentukan

4

getSpellChecker()

Dapatkan info layanan pemeriksa ejaan yang dimiliki sesi pemeriksa ejaan ini.

5

isSessionDisconnected()

Benar jika koneksi ke layanan teks sesi ini terputus dan tidak hidup.

Contoh

Berikut adalah contoh yang mendemonstrasikan penggunaan Pemeriksa Ejaan. Ini menciptakan aplikasi pemeriksa ejaan dasar yang memungkinkan Anda menulis teks dan mendapatkan saran.

Untuk bereksperimen dengan contoh ini, Anda dapat menjalankannya di perangkat sebenarnya atau di emulator.

Langkah Deskripsi
1 Anda akan menggunakan studio Android untuk membuat aplikasi Android di bawah paket com.example.sairamkrishna.myapplication.
2 Ubah file src / MainActivity.java untuk menambahkan kode yang diperlukan.
3 Ubah res / layout / main untuk menambahkan komponen XML masing-masing
4 Jalankan aplikasi dan pilih perangkat android yang sedang berjalan dan instal aplikasi di atasnya dan verifikasi hasilnya

Berikut adalah konten file aktivitas utama yang dimodifikasi src/MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
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 extends Activity implements SpellCheckerSessionListener  {
   Button b1;
   TextView tv1;
   EditText ed1;
   private SpellCheckerSession mScs;

   @Override
   protected 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(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Toast.makeText(getApplicationContext(),
               ed1.getText().toString(),Toast.LENGTH_SHORT).show();
            mScs.getSuggestions(new TextInfo(ed1.getText().toString()), 3);
         }
      });
   }

   public void onResume() {
      super.onResume();
      final TextServicesManager tsm = (TextServicesManager)
         getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE);
      mScs = tsm.newSpellCheckerSession(null, null, this, true);
   }

   public void onPause() {
      super.onPause();
      if (mScs != null) {
         mScs.close();
      }
   }

   public void onGetSuggestions(final SuggestionsInfo[] arg0) {
      final StringBuilder sb = new StringBuilder();

      for (int i = 0; i < arg0.length; ++i) {
         // Returned suggestions are contained in 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(new Runnable() {
         public void run() {
            tv1.append(sb.toString());
         }
      });
   }

   @Override
   public void onGetSentenceSuggestions(SentenceSuggestionsInfo[] arg0) {
      // TODO Auto-generated method stub
   }
}

Berikut ini adalah konten xml yang dimodifikasi res/layout/main.xml.

Dalam kode berikut abc menunjukkan logo tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="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" tools:context=".MainActivity">
   
   <TextView android:text="Spell checker " android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Suggestions"
      android:id="@+id/button"
      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/button"
      android:layout_marginBottom="56dp"
      android:focusable="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/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Suggestions"
      android:id="@+id/textView3"
      android:textSize="25sp"
      android:layout_below="@+id/imageView" />

</RelativeLayout>

Berikut ini adalah konten dari res/values/string.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

Berikut ini adalah konten dari AndroidManifest.xml mengajukan.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Ayo coba jalankan aplikasi kita yang baru saja kita modifikasi. Saya berasumsi bahwa Anda telah membuat fileAVDsaat melakukan pengaturan lingkungan. Untuk menjalankan aplikasi dari Android studio, buka salah satu file aktivitas proyek Anda dan klik

ikon Run dari toolbar. Android studio menginstal aplikasi pada AVD Anda dan memulainya dan jika semuanya baik-baik saja dengan pengaturan dan aplikasi Anda, itu akan ditampilkan berikut jendela Emulator -

Sekarang yang perlu Anda lakukan adalah memasukkan teks apa pun di bidang. Misalnya, saya telah memasukkan beberapa teks. Tekan tombol saran. Pemberitahuan berikut akan muncul di AVD Anda bersama dengan saran -

Sekarang ubah teks dan tekan tombol lagi, seperti yang saya lakukan. Dan inilah yang muncul di layar.