شرح AutoCompleteTextView في الإندرويد

برنامج تعليمي AutoCompleteTextView مع مثال في Android Studio

في نظام Android ، يعد AutoCompleteTextView طريقة عرض مشابهة لـ EditText ، فيما عدا أنه يعرض قائمة باقتراحات الإكمال تلقائيًا أثناء قيام المستخدم بالكتابة. يتم عرض قائمة من الاقتراحات في القائمة المنسدلة التي يمكن للمستخدم من خلالها اختيار عنصر يحل بالفعل محل محتوى Editbox به.

AutoCompleteTextView في Android
إنها فئة فرعية من فئة EditText حتى نتمكن من وراثة جميع خصائص EditText  في AutoCompleteTextView .

رمز AutoCompleteTextView في XML:

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="This is an AutoCompleteTextView"/>
  

استخدام محول الصفيف Array Adapter لعرض قيم النص في AutoCompleteTextView :

لعرض محتوى المصفوفة في عرض نص للإكمال التلقائي ، نحتاج إلى تنفيذ المحول . في AutoCompleteTextView نعرض القيم النصية بشكل أساسي لذلك نستخدم Array Adaptor لذلك.

ArrayAdapter في Android:

يتم استخدام ArrayAdapter عندما نحتاج إلى قائمة بنوع واحد من العناصر المدعومة بمصفوفة. على سبيل المثال ، قائمة جهات اتصال الهاتف أو البلدان أو الأسماء.

كود ArrayAdapter:

ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
  

لمزيد من التفاصيل حول ArrayAdapter والمعلمة المستخدمة ومزيد من التفاصيل ، يرجى قراءة  البرنامج التعليمي ArrayAdapter .


استرداد القيمة من AutoCompleteTextView في فئة Java:

أدناه رمز استرداد القيمة من AutoCompleteTextView في فئة Java .

AutoCompleteTextView simpleAutoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.simpleAutoCompleteTextView);

    String AutoCompleteTextViewValue = simpleAutoCompleteTextView.getText().toString();
  

سمات وخصائص  AutoCompleteTextView :

الآن دعنا نناقش السمات  والخصائص التي تساعدنا في تكوين AutoCompleteTextView في ملف xml الخاص بك .

1. المعرف id: المعرف هو سمة تستخدم لتعريف النص بشكل فريد AutoCompleteTextView.

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"/>

2. النص text: يتم استخدام سمة النص لتعيين النص في AutoCompleteTextView. يمكننا ضبط النص في XML  وكذلك فيفئة java .

أدناه قمنا بتعيين النص "البلد" في AutoCompleteTextView.

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Country"/><!--display text "Country"-->

النص في AutoCompleteTextView
3. الجاذبية gravity : سمة الجاذبية هي سمة اختيارية تتحكم في محاذاة النص مثل اليسار واليمين والوسط والأعلى والأسفل والمركز الرأسي والمركز الأفقي وما إلى ذلك.

أدناه قمنا بتعيين الجاذبية الصحيحة لنص AutoCompleteTextView.

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Country"
    android:gravity="right"/><!--right gravity for text-->

الجاذبية في AutoCompleteTextView Android
إعداد نص AutoCompleteTextView في فئة Java:

/*Add in Oncreate() funtion after setContentView()*/
    AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.simpleAutoCompleteTextView);

    //display text Country
    autoCompleteTextView.setText("Country");

4. تلميح hint : تعطي سمة التلميح تلميحًا للمستخدم بأن ما يجب عليه إدخاله في عرض النص الكامل للإكمال التلقائي. كلما بدأ في الكتابة في AutoCompleteTextView ، سيختفي التلميح تلقائيًا.

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Enter Your Country Name Here" /><!--display hint-->
  

تلميح في AutoCompleteTextView في Android
إعداد تلميح لـ AutoCompleteTextView في فئة Java:

/*Add in Oncreate() funtion after setContentView()*/
    AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.simpleAutoCompleteTextView);

    autoCompleteTextView.setHint("Enter Your Name Here");//display hint

5. textColor:  تحدد هذه السمة لون النص في AutoCompleteTextView. يمكن أن تكون قيمة اللون على شكل "#argb" أو "#rgb" أو "#rrggbb" أو "#aarrggbb".

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Country"
    android:textColor="#f00"/><!--red color for text-->
  

textColor في AutoCompleteTextView Android
ضبط لون النص للإكمال التلقائي عرض النص في فئة Java:

/*Add in Oncreate() funtion after setContentView()*/
    AutoCompleteTextView simpleAutoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.simpleAutoCompleteTextView);

    simpleAutoCompleteTextView.setTextColor(Color.RED);//red color for text

6. textColorHint:  تُستخدم هذه السمة لتعيين لون التلميح المعروض.

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Enter Your Name Here"
    android:textColorHint="#0f0"/><!--green color for hint-->
  

textColorHint في AutoCompleteTextView Android
ضبط اللون على تلميح AutoCompleteTextView في فئة Java:

/*Add in Oncreate() funtion after setContentView()*/
    AutoCompleteTextView simpleAutoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.simpleAutoCompleteTextView);

    //green color for displayed hint
    simpleAutoCompleteTextView.setHintTextColor(Color.green(0));

7. textSize: تحدد  هذه السمة حجم النص في AutoCompleteTextView. يمكننا ضبط حجم النص في sp (مقياس بكسل مستقل) أو dp (كثافة بكسل).

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Country"
    android:textSize="25sp" /><!--set the text size-->
  

حجم النص في AutoCompleteTextView Android
ضبط حجم النص في فئة Java:

/*Add in Oncreate() funtion after setContentView()*/
    AutoCompleteTextView simpleAutoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.simpleAutoCompleteTextView);
    //set the text size
    simpleAutoCompleteTextView.setTextSize(25);

8. textStyle:  يتم استخدام سمة textStyle لإعطاء نمط النص من AutoCompleteTextView. يمكننا إضافة أسلوب جريء ومائل وعادية. إذا أردنا استخدام نمطين أو أكثر من أجل AutoCompleteTextView ثم "|" عامل يستخدم لذلك.

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Country"
    android:textSize="25sp"
    android:textStyle="bold|italic"/><!--bold and italic text style-->

textStyle في AutoCompleteTextView Android
9. الخلفية background والحشو padding : تُستخدم سمة الخلفية لتعيين خلفية عرض النص التلقائي. يمكننا تعيين لون أو قابل للرسم في خلفية AutoCompleteTextView.

تُستخدم سمة padding المساحة المتروكة لتعيين المساحة المتروكة من اليسار أو اليمين أو أعلى أو أسفل.

أدناه قمنا بتعيين اللون الأسود كخلفية ، واللون الأبيض كما هو معروض وتعيين حشوة 15dp من جميع الجوانب لـ AutoCompleteTextView.

<AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#000"
    android:hint="Enter Your Name Here"
    android:padding="15dp"
    android:textColorHint="#fff"
    android:textStyle="bold|italic" />
  

الخلفية والحشو في AutoCompleteTextView Android
تعيين خلفية AutoCompleteTextView في فئة Java:

/*Add in Oncreate() funtion after setContentView()*/
    AutoCompleteTextView simpleAutoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.simpleAutoCompleteTextView);

    simpleAutoCompleteTextView.setBackgroundColor(Color.BLACK);//set black background color
  

مثال AutoCompleteTextView في Android Studio:

في مثال AutoCompleteTextView نعرض عرض النص الكامل التلقائي مع قائمة الاقتراحات التي تتضمن  قائمة البلدان. لملء البيانات في قائمة البلدان ، نقوم بتطبيق Array Adaptor . فيما يلي الإخراج النهائي ، قم بتنزيل الكود والبرنامج التعليمي خطوة بخطوة:

كود التحميل

مثال AutoCompleteTextView في Android Studio
الخطوة 1: قم بإنشاء مشروع جديد وقم بتسميته AutoCompleteTextViewExample.

الخطوة 2: افتح res -> layout -> activity_mail. xml (أو) main.xml وأضف الكود التالي:

في هذه الخطوة ، نفتح ملف xml ونضيف الرمز لعرض عرض نصي كامل تلقائيًا باستخدام سمات مختلفة كما ناقشنا سابقًا في هذه المقالة.

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="abhiandroid.com.autocompletetextviewtexting.MainActivity">

    <AutoCompleteTextView
    android:id="@+id/simpleAutoCompleteTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#000"
    android:hint="Enter Your Name Here"
    android:padding="15dp"
    android:textColorHint="#fff"
    android:textStyle="bold|italic" />
    </RelativeLayout>

الخطوة 3: افتح التطبيق -> الحزمة -> النشاط الرئيسي. جافا

في هذه الخطوة ، نفتح MainActivity حيث نضيف الرمز لبدء عرض النص الكامل التلقائي ثم نملأ البيانات في قائمة الاقتراحات باستخدام Array Adaptivity .

package example.abhiandriod.autocompletetextviewexample;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;

    public class MainActivity extends AppCompatActivity {

    String[] countryNameList = {"India", "China", "Australia", "New Zealand", "England", "Pakistan"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //initiate an auto complete text view
    AutoCompleteTextView simpleAutoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.simpleAutoCompleteTextView);
    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, countryNameList);

    simpleAutoCompleteTextView.setAdapter(adapter);
    simpleAutoCompleteTextView.setThreshold(1);//start searching from 1 character
    simpleAutoCompleteTextView.setAdapter(adapter);   //set the adapter for displaying country name list
    }


    }

المخرجات :

الآن ابدأ تشغيل AVD في Emulator وقم بتشغيل التطبيق. اكتب "i" وستظهر "India" كاقتراح ، واكتب "A" وستظهر "Australia" كاقتراح وما إلى ذلك. يتم ذلك باستخدام AutoCompleteTextView.

مثال AutoCompleteTextView في Android Studio