Android - Otomatik Tamamlama

Düzenlenebilir bir metin alanına yazdığınızda öneri almak istiyorsanız, bunu AutoCompleteTextView ile yapabilirsiniz. Kullanıcı yazarken otomatik olarak öneriler sağlar. Önerilerin listesi, kullanıcının düzenleme kutusunun içeriğini değiştirmek için bir öğe seçebileceği bir açılır menüde görüntülenir.

AutoCompleteTextView kullanmak için önce xml'de bir AutoCompletTextView Alanı oluşturmanız gerekir. Söz dizimi aşağıda verilmiştir.

<AutoCompleteTextView
   android:id="@+id/autoCompleteTextView1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentTop="true"
   android:layout_centerHorizontal="true"
   android:layout_marginTop="65dp"
   android:ems="10" >

Bundan sonra, bu metin görünümünün javada bir referansını almanız gerekir. Söz dizimi aşağıda verilmiştir.

private AutoCompleteTextView actv;
actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);

Yapmanız gereken sonraki şey, görüntülenecek öneri öğelerinin listesini belirlemektir. Liste öğelerini java'da veya strings.xml'de bir dizi dizisi olarak belirtebilirsiniz. Söz dizimi aşağıda verilmiştir.

String[] countries = getResources().getStringArray(R.array.list_of_countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>
   (this,android.R.layout.simple_list_item_1,countries);
actv.setAdapter(adapter);

Dizi bağdaştırıcısı sınıfı, verileri metin alanının öneri kutusunda liste olarak görüntülemekten sorumludur. setAdapteryöntemi autoCompleteTextView bağdaştırıcısını ayarlamak için kullanılır. Bu yöntemlerin dışında, diğer Otomatik Tamamlama yöntemleri aşağıda listelenmiştir.

Sr.No Yöntem ve açıklama
1

getAdapter()

Bu yöntem, otomatik tamamlama için kullanılan filtrelenebilir bir liste bağdaştırıcısı döndürür

2

getCompletionHint()

Bu yöntem, eşleşen listenin altında görüntülenen isteğe bağlı ipucu metnini döndürür.

3

getDropDownAnchor()

Bu yöntem, otomatik tamamlama açılır listesinin bağlı olduğu görünümün kimliğini döndürür.

4

getListSelection()

Bu yöntem, eğer varsa, açılır menü seçiminin konumunu döndürür

5

isPopupShowing()

Bu yöntem, açılır menünün gösterilip gösterilmediğini gösterir

6

setText(CharSequence text, boolean filter)

Bu yöntem, filtrelemeyi devre dışı bırakabilmesi dışında metni ayarlar

7

showDropDown()

Bu yöntem açılır pencereyi ekranda görüntüler.

Misal

Aşağıdaki örnek, AutoCompleteTextView sınıfının kullanımını gösterir. Yazmanıza izin veren temel bir uygulama oluşturur ve cihazınızda öneriler görüntüler.

Bu örneği denemek için, bunu gerçek bir cihazda veya bir emülatörde çalıştırmanız gerekir.

Adımlar Açıklama
1 Com.example.sairamkrishna.myapplication paket paketi altında bir Android uygulaması oluşturmak için Android Studio'yu kullanacaksınız.
2 AutoCompleteTextView kodunu eklemek için src / MainActivity.java dosyasını değiştirin
3 Düzen XML dosyasını değiştirin res / layout / activity_main.xml gerekirse herhangi bir GUI bileşeni ekleyin.
4 Uygulamayı çalıştırın ve çalışan bir android cihaz seçin ve üzerine uygulamayı yükleyin ve sonuçları doğrulayın.

İşte içeriği src/MainActivity.java

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.content.Context;

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaRecorder;

import android.os.Bundle;
import android.os.Environment;

import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;

import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.Toast;
import java.io.IOException;


public class MainActivity extends Activity {
   AutoCompleteTextView text;
   MultiAutoCompleteTextView text1;
   String[] languages={"Android ","java","IOS","SQL","JDBC","Web services"};
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      text=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
      text1=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1);
      
      ArrayAdapter adapter = new 
         ArrayAdapter(this,android.R.layout.simple_list_item_1,languages);
      
      text.setAdapter(adapter);
      text.setThreshold(1);
      
      text1.setAdapter(adapter);
      text1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
   }
}

İşte içeriği activity_main.xml

Burada abc, tutorialspoint logosunu gösterir
<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: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">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Android Auto Complete"
      android:id="@+id/textView"
      android:textSize="30dp"
      android:layout_alignParentTop="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorialspoint"
      android:id="@+id/textView2"
      android:textColor="#ff3eff0f"
      android:textSize="35dp"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/logo"
      android:layout_below="@+id/textView2"
      android:layout_alignLeft="@+id/textView2"
      android:layout_alignStart="@+id/textView2"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2" />
      
   <AutoCompleteTextView
      android:id="@+id/autoCompleteTextView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:ems="10"
      android:layout_below="@+id/imageView"
      android:layout_alignLeft="@+id/imageView"
      android:layout_alignStart="@+id/imageView"
      android:layout_marginTop="72dp"
      android:hint="AutoComplete TextView">
      <requestFocus />
   </AutoCompleteTextView>
   
   <MultiAutoCompleteTextView
      android:id="@+id/multiAutoCompleteTextView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:ems="10"
      android:layout_below="@+id/autoCompleteTextView1"
      android:layout_alignLeft="@+id/autoCompleteTextView1"
      android:layout_alignStart="@+id/autoCompleteTextView1"
      android:hint="Multi Auto Complete " />
      
</RelativeLayout>

İşte içeriği Strings.xml

<resources>
   <string name="app_name">My Application</string>
</resources>

İşte içeriği AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Uygulamanızı çalıştırmayı deneyelim. Ortam kurulumunu yaparken AVD'nizi bağladığınızı varsayıyorum. Uygulamayı Android Studio'dan çalıştırmak için, projenizin etkinlik dosyalarından birini açın

ve araç çubuğundan Çalıştır simgesini tıklayın . Android stüdyo bu uygulamayı AVD'nize yükleyecek ve AVD'niz aşağıdaki ekranı gösterecektir.

Şimdi, Diller'in önerilerini görmek için metin görünümüne yazmanız yeterlidir. Ben sadece bir harf yazdığımdaave bana dil önerisini gösteriyor.

MultiAutoCompleteTextView yalnızca bir sözcük için değil, tüm metin için öneriler gösterir. İlk kelimeyi yazdıktan sonra ikinci kelimeyi yazmaya başladığımda bana önerileri gösteriyor. Bu, aşağıdaki resimde gösterilebilir.