。。。在百度上搜了这么一段。理解了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底层数据之间的桥,提供对data Items的存取,同时负责针对每个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()); } }