首页 > 代码库 > 安卓学习第11课——AutoCompleteTextView

安卓学习第11课——AutoCompleteTextView

。。。在百度上搜了这么一段。理解了ArrayAdapter的三个参数的用途

1. 这个小例子是要显示一个数组,我们就用ArrayAdapter,数组适配器,数据的数据类型<>是String类型的,数据的数据类型还可以是其他的包括对象类型的

2. ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(ArrayListDemo.this, android.R.layout.simple_list_item_1,adapterData);

这段代码是创建一个数组适配器的代码,里面有三个参数,第一个参数是上下文,就是当前的Activity, 第二个参数是android sdk中自己内置的一个布局,它里面只有一个TextView,这个参数是表明我们数组中每一条数据的布局是这个view,就是将每一条数据都显示在这个 view上面;第三个参数就是我们要显示的数据。listView会根据这三个参数,遍历adapterData里面的每一条数据,读出一条,显示到第二 个参数对应的布局中,这样就形成了我们看到的listView.

AdapterView功能
一个Adapter对象作为一个AdapterView和View底层数据之间的桥,提供对dataItems的存取,同时负责针对每个Data如何渲染到对应的View中。

貌似懂了Adapter是干啥用的。。。感觉就是讲数组或是list里的数据转化为视图。。。这就容易懂了。。。

下面上代码。。就是自动完成文本框

<LinearLayout 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:orientation="vertical"><!-- 定义一个自动完成文本框,指定输入一个字符后进行提示 --><AutoCompleteTextView     android:id="@+id/auto"     android:layout_width="match_parent"    android:layout_height="wrap_content"     android:completionHint="请选择您喜欢的书籍"    android:dropDownHorizontalOffset="10sp"    android:completionThreshold="1"        /><!-- 定义一个MultiAutoCompleteTextView --><MultiAutoCompleteTextView     android:id="@+id/mauto"      android:layout_width="match_parent"    android:layout_height="wrap_content"     android:completionThreshold="1"    /></LinearLayout>
package com.example.autocompletetv;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.MultiAutoCompleteTextView;public class MainActivity extends Activity {    AutoCompleteTextView actv;    MultiAutoCompleteTextView mauto;    //定义一个字符数组作为提示文本    String[] books=new String[]{            "java讲义",            "ajax讲义",            "XML讲义",            "android讲义"    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //创建一个ArrayAdapter,封装数组        ArrayAdapter<String> aa=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, books);        actv=(AutoCompleteTextView) findViewById(R.id.auto);        actv.setAdapter(aa);        mauto=(MultiAutoCompleteTextView) findViewById(R.id.mauto);        mauto.setAdapter(aa);        //为MultiAutoCompleteTextView设置分隔符        mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());    }    }