1. 程式人生 > >從零開始學Android之 AutoCompleteView 動態匹配輸入的內容(像搜尋引擎上的匹配)

從零開始學Android之 AutoCompleteView 動態匹配輸入的內容(像搜尋引擎上的匹配)

1.AutoCompleteTextView屬性:
  1>動態匹配輸入的內容

  2>android:completionThreshold="n" -- 輸入n個字元開始匹配

 在activity_main.xml中加入AutoCompleteTextView

  程式碼如下:

<span style="font-family:KaiTi_GB2312;"><AutoCompleteTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:completionThreshold="3"-- 輸入n個字元開始匹配
        android:hint="請輸入你要搜素的關鍵字"
        android:id="@+id/autoCompleteTextView"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        /></span>
2.在ManiActivity.class中具體實現

第一步:初始化控制元件
第二步:需要一個介面卡,作用是適配當前文字框輸入的內容。
利用簡單的介面卡ArrayAdapter
第三步:初始化資料來源===去匹配文字框中輸入的內容。
eg:private string[]={ , , };
利用泛型
ArrayAdapter<String> adapter = new ArrayAdapter<String>( , , );
第四步:將Adapter與當前AutoCompleteTextView匹配。
acTextView.steAdapter(adapter);

具體程式碼如下:

<span style="font-family:KaiTi_GB2312;">package com.example.administrator.paoma;

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


public class MainActivity extends ActionBarActivity {
    String[] guan = new String[]{"beijing1","beijing2","bejing",
            "shanghai1","shanghai2","shnghai3"};
    private AutoCompleteTextView atCo;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /*
         *
         */
        atCo = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
        ArrayAdapter<String> adapter =  new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,guan);
        atCo.setAdapter(adapter);
    }



}</span>
解釋一下:
<span style="font-family:KaiTi_GB2312;"> ArrayAdapter<String> adapter =  new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,guan);</span>
<span style="font-family:KaiTi_GB2312;">中 “this”是指當前,</span><pre name="code" class="java"><span style="font-family: KaiTi_GB2312;">“android.R.layout.simple_list_item_1”指的是<span style="font-family: KaiTi_GB2312;font-size:18px;"> 在activity_main.xml中的</span><span style="font-family: KaiTi_GB2312;font-size:18px;">AutoCompleteTextView</span></span>
“guan”指的是自動匹配的資料來源。