براي به كارگيري از اين آناليز كننده ي املا ما يحتاج ميباشد طراحي اپليكيشن تا اينترفيس 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 ، آبجكت توليد گرديده ميتواند تحت عنوان مثال قرار بگيرد.
اين كلاس به مشي في مابين نرم افزار و خدمت هاي متن (text service) استيناف مي نمايد. همينطور نياز ميباشد كه خدمت سيستم را براي مثال گذاري آن درخواست فرماييد.
سينتكس آن در ذيل ارائه گرديدهاست :
private SpellCheckerSession mScs;
final TextServicesManager tsm = (TextServicesManager) getSystemService(
Context.TEXT_SERVICES_MANAGER_SERVICE);
mScs = tsm.newSpellCheckerSession(null, null, this, true);
واپسين كاري كه بايستي اجرا دهيد، فراخواني سياق getSuggestions است تا براي هر متن آيتم نظرتان توصيه (suggestion) داشته باشيد. سفارش ها به روال onGetSuggestions منتقل خواهند شد، جايي كه شما هر كاري كه ميخواهيد ميتوانيد جاري ساختن دهيد.
mScs.getSuggestions(new TextInfo(editText1.getText().toString()), 3);
اين مشي دو پارامتر را تحت عنوان ورودي ميگيرد.
اولي پارامتر، فن اي به صورت آبجكت TextInfo ميباشد و دومين پارامتر شماره ي cookie است كه براي مشخص و معلوم كردن سفارش ها به كار گيري ميگردد.
علاوه برا اين اسلوب ها ، اسلوب هاي ديگري به وسيله كلاس SpellCheckerSession و براي سفارش هاي عالي ارائه ميشوند. ليست اين مشي ها را در جدول تحت مشاهده ميكنيد :
()cancel : موقعيت پندينگ (pending) را لغو كرده و عمل تحليل كردن املا را ايفا مي نمايد.
()close : اين مشي session را به نقطه پايان رسانده و به TextServicesManagerService اذن ميدهد تا از آناليز كننده املا غير وابسته گردد.
(getSentenceSuggestions(TextInfo[] textInfos, int suggestionsLimit : پيشنهاداتي از جملات معلوم گرديده ميگيرد.
()getSpellChecker : داده ها spell checker service را كه مرتبط با اين session از تحليل كننده باشد، ميگيرد.
()isSessionDisconnected : اين روال True را بر مي گرداند در شرايطي كه اتصال به خدمت متن درين نصيب جدا گرديده باشد.
نمونه :
در اينجا مثالي ارائه ميشود كه به كارگيري از Spell Checker را توضيح ميدهد. اين نمونه نرم افزار اساس اي ساخت و ساز مي نمايد كه به شما اذن ميدهد از محاسبه كننده املا استعمال كرده و suggestion هايي اخذ فرماييد .
براي جاري ساختن اين نمونه ميتوانيد آن را روي يك دستگاه حقيقي و واقعي يا اين كه يك امولاتور هجرا نماييد.
براي ساخت يك نرمافزار ي اندرويد از اندرويد استوديو پايين پكيج com.example.hellospellchecker استعمال نماييد .
فولدر src/MainActivity.java را براي افزودنكد هاي ما يحتاج تغيير و تحول دهيد.
res/layout/main را براي اضافه كردن كامپوننت هاي XML مربوطه تغيير و تحول دهيد.
نرم افزار را انجام كرده و يك دستگاه اجرايي اندرويد تعيين نماييد، نرم افزار را روي آن نصب كرده و نتيجه ها را رسيدگي نماييد.
محتواي تغيير و تحول يافته ي پوشه src/MainActivity.java :
package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.content.Context;
import android.سيستم عامل.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
}
}
محتواي تغيير و تحول يافته ي res/layout/main.xml :
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">
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
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" />
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" />
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" />
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" />
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" />
محتواي res/values/string.xml:
My Application
محتواي فولدر AndroidManifest.xml:
package="com.example.sairamkrishna.myapplication" >
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name=".MainActivity"
android:label="@string/app_name" >
درحال حاضر ميخواهيم نرم افزار متبوع را جاري ساختن كنيم .
فرض ميكنيم كه در هنگام اجرا پيكربندي گوشه و كنار ، AVD خويش را ساخت نموده ايد. براي اجراي نرم افزار از اندرويد استوديو ، يك كدام از فولدر هاي اكتيويتي نرم افزار را گشوده كرده و روي آيكون Run در نوار ابزار كليك نماييد. اندرويد استديو نرم افزار را روي AVD نصب كرده و آن را جاري ساختن مي نمايد. چنانچه كليه چيز در زمينه ي اپليكيشن و پيكربندي آن صحيح باشد، پنجره ي امولاتور تحت اكران داده گردد :
بازدید: