AutocompleteTextView یکی از ویجت های استاندارد اندروید میباشد،که شبیه به ویجت Textview میباشد،ولی با این تفاوت که وقتی بخواهیم برنامه های سرچینگ پیاده سازی کنیم ،بهتر میباشد از AutocompleteTextView استفاده کنیم، چونکه باعث میشود اطلاعات در ویجت لود شده و بتوان اطلاعات را جستجو کرد.
نحوه تعریف XML ویجت :
<AutoCompleteTextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp" />
برای روشن شدن کامل نحوه عملکرد این ویجت،مثالی ساده را اجرا میکنیم.در این مثال یه ارایه ثابت را تعریف میکنیم، سپس ارایه را در این ویجت Adapter میکنیم و اطلاعات در این ویجت لیست میشوند.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<AutoCompleteTextView
android:layout_height="wrap_content"
android:text="Please Enter Words . . . :" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp" />
</LinearLayout>
برای نمایش بهتره لیست اطلاعات ، یک لایوت اختصاصی برای نمایش اطلاعات ایجاد میکنیم،در مسیر زیر res/layout/list_item.xml این فایل را ایجاد میکنیم :
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"
android:textColor="#000"/>
سپس در اکتیویتی خود بدین صورت عمل کنید
یک ارایه رشته ای را بصورت Public تعریف کنید :
static final String[] ITEMS = new String[]
{ "Tea",
"Coffee", "Milk", "Expresso", "Lemon Tea", "Cappuciano",
"Hot Water", "Tomato Soup", "Ginger Tea", "ColdDrink"};
در آخر نیز در onCreate ویجت خود را تعریف میکنیم، و آرایه را در آن لود نموده ، و نتیجه کار را مشاهده کنید.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list_item, ITEMS);
textView.setAdapter(adapter);
}