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