آموزش اندروید استودیوآموزش های برنامه نویسی اندروید

آموزش برنامه نویسی اندروید (بخش چهل و سوم: کلمات پیشنهادی با استفاده از AutoCompleteTextView )

بارها برای شما پیش آمده که در پلتفرم اندرویدی خودتان، با نوشتن حرف اول یک کلمه، پیشنهادهایی به شما داده شود. این کار باعث جستجوی سریع تر کلمه مورد نظر و در نتیجه راحتی کار کاربر می شود.

AutoCompleteTextView در اندروید وظیفه این کار را بر عهده دارد. AutoCompleteTextView یک نوع از جستجوی پیشرفته را ارائه می دهد که این نوع از جستجوی کلمات را انجام می دهد.

نوعی از این پیشنهادها را در کیبوردهای اندرویدی می بینید. ولی آن ها از دیکشنری های خودشان که خیلی از کلمات یک زبان را پوشش می دهد استفاده می کنند.

اگر بخواهید که خودتان یک دیکشنری ساده در اپلیکیشن با تعداد کلمات محدود ولی پرکاربرد برای یک TextBox داشته باشید میتوانید از این روش استفاده نمایید. زیرا ممکن است در اپلیکیشن خود، بخواهید در قسمت ورودی متن، کلماتی را نیز پیشنهاد دهید.

در ابتدا برای شروع، من یک پروژه به نام AutoComplete-Gsm ایجاد می کنم. سپس به قسمت لایه اپلیکیشن یعنی فایل activity_main.xml می روم. از قسمت Paletteها یک AutoCompleteTextView را به لایه اپلیکیشن Drag & Drop می کنم (می کشم) .

توجه داشته باشید که بیشتر خاصیت هایی که در بخش EditText یاد گرفتیم، می تواند در این بخش نیز قابل استفاده باشد. زیرا این دو ابزار در خیلی از موارد شبیه به هم عمل می کنند.

کد Xml ابزار AutoCompleteTextView :

<AutoCompleteTextView
        android:text="AutoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="180dp"
        android:id="@+id/autoCompleteTextView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="20dp"
        android:layout_marginStart="64dp" />

کار ما با طراحی لایه اپلیکیشن در همین حد به اتمام می رسد. پس تنها کاری که لازم بود انجام بدیم کشیدن ابزار AutoCompleteTextView به داخل لایه اپلیکیشن بود.

حال به قسمت کد جاوای برنامه یعنی فایل MainActivity.java رفته تا کدهای جاوای اپلیکیشن را بنویسیم.

در مرحله اول کافی ست یک رشته در داخل تابع ()onCreate تعریف کنیم. در رشته ای که در زیر مشاهده می کند سعی شده است از حروفی که در ابتدای کلمات به کار رفته است، کلمه ی دیگری نیز با همان حرف تعریف شود. زیرا در هنگام جستجو می خواهیم مشاهده کنید که با نوشتن حرف اول کلمه، کلمات پیشنهادی به شما نشان داده می شود.

String[] MyDict={"Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar",
                "Mehr","Aban","Azar","Dey","Bahman","Esfand",
                 "Ali","Fantasy","Emsal","Os","Kif","Saham"};

حال برای لیست کردن این رشته ها باید از یک ArrayAdapter استفاده کنیم. چون در قسمتی که می خواهیم از آرایه ی رشته ای که تعریف کرده ایم استفاده نماییم، باید اطلاعات به صورت لیست شده باشند. ArrayAdapter وظیفه لیست کردن این اطلاعات ( در اینجا ماه های سال و … که به صورت String تعریف کردیم) را برعهده دارد.

ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,android.R.layout.select_dialog_item,MyDict);

در قسمت بعدی باید ابزار AutoCompleteTextView که در بخش لایه ها ایجاد نموده ایم را به قسمت جاوای برنامه معرفی نماییم. همان طور که می دانید این کار را با استفاده از آیدی که در آنجا تعریف شده است، و توسط کد زیر انجام می دهیم:

AutoCompleteTextView actv=  (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);

لازم به ذکر است که کلاس لایبراری زیر باید در کدجاوای برنامه Import شود تا AutoCompleteTextView بتواند در قسمت جاوای برنامه شناخته شده و مورد استفاده قرار گیرد:

import android.widget.AutoCompleteTextView;

همان طور که در کد بالا نوشتیم، نام AutoCompleteTextView در کد جاوای برنامه actv است. در قسمت بعدی از متد setThreshold برای actv استفاده می کنیم:

 

کد این قسمت:

actv.setThreshold(1);

اگر به کد بالا با دقت نگاه کنید، متوجه می شوید که در آرگومان ورودی برای متد setThreshold عدد 1 گذاشته شده است. این عدد برای اینست که به AutoCompleteTextView بگوییم تنها با اولین حرفی که وارد کرده ایم شروع به جستجو کن.  در صورتی که عدد 2 را وارد کنیم، پس از وارد کردن دو حرف اول کلمه، برنامه شروع به جستجوی کلمات پیشنهادی می کند.

حال باید رشته ای که به صورت لیست شده با استفاده از ArrayAdapter انجام دادیم را به actv یعنی همان AutoCompleteTextView معرفی کنیم:

actv.setAdapter(adapter);

در آخر نیز می توانید رنگی را برای نمایش نوشته ی ورودی خودتان در اتوکامپلیت تکست ویو نیز مشخص نمایید:

actv.setTextColor(Color.RED);

برنامه را اجرا می کنیم و خروجی زیر را مشاهده می نمایید:

دقت کنید که تنها با وارد کردن حرف a ، کلمات پیشنهادی که با حرف a شروع می شوند به شما نمایش داده می شود.

پس برای آن که لیستی کامل تر داشته باشید بهتر است از یک فایل دیکشنری پر از کلمات پیشنهادی استفاده کنید. فایل دیکشنری را در برنامه به صورت لیست شده با استفاده از ArrayAdapet به AutoComplete ی که تعریف کرده اید بدهید.

Arash

طراح سایت و برنامه نویس

‫2 دیدگاه ها

  1. سلام خسته نباشید. مطالب بسیارآموزنده ای گردآوری گردیده وزحمت بسیاری درآن مشهود است . تمامی بخش های آموزش اندروید را تا این مرحله مطالعه نموده وبسیار مفید هستند ، متشکرم
    ضمن آرزوی موفقیت خواهشمند است کدنهائی وکامل مربوط به فایل MainActivity.java مبحث AutoCompleteTextView را درصورت امکان برایم با ایمیل ارسال نمائید. یک پروژه دیکشنری دارم ومیخواهم ازآن استفاده نمایم .
    ازلطفتون سپاسگزارم

    1. سلام متاسفانه بخاطر بالا رفتن قیمت سرورها برنامه نویس سایت دیگه فعالیت نمیکنه در این بخش

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا