درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
مدرس: مهدی عادلی
این دوره را در 2 قسط خریداری کنید
دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
مدرس: dr-iman
این دوره را در 13 قسط خریداری کنید
دوره تخصصی آموزش متن کاوی با ابزار NLTK
مدرس: taghandiki
این دوره را در 11 قسط خریداری کنید
دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
مدرس: taghandiki
این دوره را در 20 قسط خریداری کنید
دوره آموزشی Exploit نویسی به زبان Perl
مدرس: dr-iman
این دوره را در 7 قسط خریداری کنید
دوره آموزشی طراحی رابط کاربری با JavaFX
مدرس: hharddy
این دوره را در 13 قسط خریداری کنید
دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
مدرس: Amirhossein Fazlikhani
این دوره را در 12 قسط خریداری کنید
دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 17 قسط خریداری کنید
دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
مدرس: حسین احمدی
این دوره را در 11 قسط خریداری کنید
دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 78 قسط خریداری کنید

اضافه کردن قابلیت auto complete به متن ها در اندروید

0 نظرات
72 بازدیدها
سلام ITPRO های عزیز. در خیلی از صفحه های اینترنتی و بعضی از برنامه های اندرویدی می بینیم که وقتی در حال تایپ کردن متنی هستیم مقادیری ظاهر می شوند که می توانیم از داخل آنها کلمه مورد نظر را که تایپ می کنیم را انتخاب کنیم. حال در این مطلب می خواهیم ببینیم که در اندروید این کار به چه شکلی پیاده سازی می شود. شما در اندروید می توانید این کار را با استفاده از AutoCompleteTextView انجام دهید و به صورت اتوماتیک کلماتی را به کاربر پیشنهاد بدهید. برای شروع کار شما باید یک AutoCompleteTextView را در layout خود قرار دهید کد xml قرار دادن این کنترل به شکل زیر است.
<AutoCompleteTextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/autoText"/>

بعد از این کار باید در کد جاوا به این کنترل بگوییم که کلمات پیشنهادی را از کجا لود کند. برای مشخص کردن کلمات پیشنهادی برای این کنترل از adapter ها استفاده می کنیم. کار با adapter ها در لیس ویو در این ویدیو توضیح داده شده است. حال در این مطلب یک آرایه رشته ای تعریف می کنیم و از آن یک adapter می سازیم و آن Adapter را به کنترل اختصاص می دهیم. اگر بخواهیم به صورت برنامه نویسی توضیحات بالا را بیان کنیم باید کدی مانند کد زیر بنویسیم.
AutoCompleteTextView autoText;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    autoText= (AutoCompleteTextView) findViewById(R.id.autoText);
    String[] languages=new String[]{"java","C plus plus","python","ruby","php","visual basic","assembly"};
    ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,languages);
    autoText.setAdapter(adapter);
}

در کد بالا یک آرایه رشته ای به نام languages تعریف شده است و بعد از آن یک adapter تعریف شده است و در انتها adapter تعریف شده به autoText که همان کنترل ما است اختصاص داده شده است. اگر شما این برنامه را اجرا کنید خواهید دید که مثلا با تایپ حروف ja کلمه java ظاهر خواهد شد و برای کلمات دیگر نیز به همین شکل است.
مشکلی که در کد بالا وجود دارد این است که وقتی که یک کلمه نوشته می شود دیگر auto Complete برنامه کار نمی کند. خب دلیل این مشکل این است که AutoCompleteTextView برای یک کلمه پیشنهاد می دهد و قابلیت auto complete را دارا خواهد بود. حال برای این که بتوانیم بعد از کلمه اول باز هم از قابلیت auto complete استفاده کنیم باید از کنترل دیگری به نام MultiAutoCompleteTextView استفاده کنیم. این کنترل دقیقا شبیه به همان کنترل قبل است با این تفاوت که می تواند در یک خط همه کلمات را پیشنهاد کند و قابلیت auto complete داشته باشد. تفاوتی که این کنترل با قبلی دارد باید از یک علامت به عنوان توکن برای آن استفاده کنیم که معمولا از , برای توکن استفاده می شود. توکن باعث جدا شدن کلمات مختلف در این کنترل خواهد بود. در کد زیر ما یک MultiAutoCompleteTextView ساخته ایم
MultiAutoCompleteTextView autoText;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    autoText= (MultiAutoCompleteTextView) findViewById(R.id.autoText);
    String[] languages=new String[]{"java","C plus plus","python","ruby","php","visual basic","assembly"};
    ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,languages);
    autoText.setAdapter(adapter);
    autoText.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}

خط آخر به کنترل می گوید که با استفاده از علامت کاما بین دو کلمه فاصله قرار داده شود. در عکس زیر نحوه عملکرد این کنترل را می بینید.
Image

ITPRO باشید

نویسنده: مهدی عادلی فر
منبع: Itpro
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

برچسب ها
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید

    arrow