مشخصات مقاله
-
1755
-
0.0
-
3688
-
0
-
0
آموزش چک کردن Spelling اندروید
دوره آموزش برنامه نویسی اندروید
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
آموزش چک کننده ی اسپلینگ (املا) اندروید
سکوی اندروید یک چک کننده ی املا ارائه می دهد که به شما اجازه می دهد که به چک کردن املا در برنامه ی خود دسترسی داشته وآن را اجرا کنید.
برای استفاده از این چک کننده لازم است تا اینترفسش SpellCheckerSessionListener را اجرا کنید و روش های آن را به کار ببریدو هم نهشت آن را می توانید در زیر ببینید .
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
}
}
پس از آن لازم است یک آبجکت از گروه SpellCheckerSession ایجاد کنید. با فراخوانی روش newSpellCheckerSession از گروه TextServicesManager آبجکت ایجاد شده می تواند به عنوان نمونه قرار بگیرد. این گروه به روش بین برنامه و سرویس های متن رسیدگی می کند. نیاز است که سرویس سیستم را برای نمونه گذاری آن درخواست کنید. ترکیب آن در زیر ارائه شده است .
private SpellCheckerSession mScs;
final TextServicesManager tsm = (TextServicesManager) getSystemService(
Context.TEXT_SERVICES_MANAGER_SERVICE);
mScs = tsm.newSpellCheckerSession(null, null, this, true);
آخرین کاری که باید انجام دهید، فراخوانی روش getSuggestions می باشد تا برای هر متنی که می خواهید پیشنهاد داشته باشید. پیشنهادها روی روش onGetSuggestions منتقل خواهند شد، جایی که شما هر کاری که می خواهید می توانید انجام دهید.
mScs.getSuggestions(new TextInfo(editText1.getText().toString()), 3);
این روش دو پارامتر می گیرد. اولین پارامتر، رشته ای به شکل آبجکت TextInfo می باشد و دومین پارامتر شماره ی cookie می باشد که برای مشخص کردن پیشنهادها استفاده می شود. علاوه برا این روش ها، روش های دیگری توسط گروه SpellCheckerSession و برای پیشنهادهای بهتر ارائه می شوند. لیست این روش ها را در جدول زیر مشاهده می کنید.
|
ردیف |
متد ها و توضیحات |
|
1 |
cancel() حالت پندینگ (pending) را کنسل کرده و فعالیت های چک کردن املا را اجرا می کند. |
|
2 |
close() بخش را به پایان رسانده و به TextServicesManagerService اجازه می دهد تا از چک کننده املا قطع شود. |
|
3 |
getSentenceSuggestions(TextInfo[] textInfos, int suggestionsLimit) پیشنهاداتی از جملات مشخص شده می گیرد. |
|
4 |
getSpellChecker() اطلاعات سرویس چک کننده ی املا را که مربوط به این بخش از چک کننده باشد، می گیرد. |
|
5 |
isSessionDisconnected() true، اگر اتصال به سرویس متن این بخش قطع شده باشد. |
مثال
در اینجا مثالی ارائه می شود که استفاده از Spell Checker را توضیح می دهد. این مثال برنامه ی پایه ای ایجاد می کند که به شما اجازه می دهد از چک کننده املا استفاده کرده و پیشنهاداتی بگیرید.
برای انجام این مثال می توانید آن را روی یک دستگاه حقیقی یا یک مقلد هجرا کنید.
|
مراحل |
توضیحات |
|
1 |
برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان HelloSpellCheckerActivity تحت بسته ی com.example.hellospellchecker نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید. |
|
2 |
فایل src/MainActivity.java را برای افزودن کد لازم تغییر دهید. |
|
3 |
res/layout/main را برای افزودن مولفه های XML مربوطه تغییر دهید. |
|
4 |
res/values/string.xml را برای افزودن مولفه های رشته ی لازم تغییر دهید. |
|
5 |
برنامه را اجرا کرده و یک دستگاه اجرایی اندروید انتخاب کنید، برنامه را روی آن نصب کرده و نتایج را بررسی کنید. |
در اینجا محتوای فایل تغییریافته ی فعالیت اصلی را مشاهده می کنید.
src/com.example.hellospellchecker/MainActivity.java.
package com.example.android.hellospellchecker;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.textservice.SentenceSuggestionsInfo;
import android.view.textservice.SpellCheckerSession;
import android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener;
import android.view.textservice.SuggestionsInfo;
import android.view.textservice.TextInfo;
import android.view.textservice.TextServicesManager;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class HelloSpellCheckerActivity extends Activity implements SpellCheckerSessionListener {
private static final int NOT_A_LENGTH = -1;
private TextView mMainView;
private SpellCheckerSession mScs;
private EditText editText1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mMainView = (TextView)findViewById(R.id.main);
editText1 = (EditText)findViewById(R.id.editText1);
}
@Override
public void onResume() {
super.onResume();
final TextServicesManager tsm = (TextServicesManager) getSystemService(
Context.TEXT_SERVICES_MANAGER_SERVICE);
mScs = tsm.newSpellCheckerSession(null, null, this, true);
}
@Override
public void onPause() {
super.onPause();
if (mScs != null) {
mScs.close();
}
}
public void go(View view){
Toast.makeText(getApplicationContext(), editText1.getText().toString(),
Toast.LENGTH_SHORT).show();
mScs.getSuggestions(new TextInfo(editText1.getText().toString()), 3);
}
@Override
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() {
mMainView.append(sb.toString());
}
});
}
@Override
public void onGetSentenceSuggestions(SentenceSuggestionsInfo[] arg0) {
// TODO Auto-generated method stub
}
}
در زیر محتوای تغییریافته ی xml مربوط به res/layout/main.xml را مشاهده می کنید.
<?xml version="1.0" encoding="utf-8" ?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<textview android:id="@+id/main"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/pre"
/>
<button android:id="@+id/mainbtn"
android:layout_width="150dip"
android:layout_height="50dip"
android:onclick="go"
android:text="@string/suggest" />
<edittext android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10">
<requestfocus />
</EditText>
</linearlayout>
در ادامه محتوای res/values/string.xmlرا مشاهده می کنید.
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<string name="app_name">HelloSpellChecker</string>
<string name="suggest">suggest</string>
<string name="pre">Suggestions</string>
</resources>
در اینجا محتوای فایلAndroidManifest.xml را مشاهده می کنید.
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.hellospellchecker"
android:versioncode="1"
android:versionname="1.0">
<uses-sdk android:minsdkversion="14" />
<application android:label="@string/app_name">
<activity android:label="@string/app_name"
android:name=".HelloSpellCheckerActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
اجازه دهید برنامه ی Spell Checker تازه تغییریافته را اجرا کنیم.فرض می کنیم که شما در هنگام انجام تنظیمان محیط AVD خود را ایجاد کرده اید. برای اجرای برنامه از Eclipse، یکی از فایل های فعالیت برنامه را باز کرده و روی آیکن icon در تولبار کلیک کنید. Eclipse برنامه را روی AVD نصب کرده و آن را شروع می کند. اگر همه چیز در مورد برنامه و تنظیمات آن درست باشد، پنجره ی مقلد زیر نمایش داده خواهد شد.
اکنون باید در فیلد هر متنی که می خواهید وارد کنید، من متنی وارد کردم و سپس دکمه ی suggestions را فشار دهید. به همراه پیشنهادها، در AVD شما پیام زیر ظاهر خواهد شد.
اکنون متن را عوض کرده و دوباره دکمه را فشار دهید، تصویر زیر چیزی است که ظاهر خواهد شد.
