今天很残酷,明天更残酷,后天很美好,但绝对大部分都是死在明天晚上。坚持就是胜利!加油!
本讲内容:AutoCompleteTextView 自动完成文本框和MultiAutoCompleteTextView支持多次自动匹配
前面我们用Android系统内自定义的spinner的UI格式,本讲中我们使用自已定义的spinner的UI格式
示例一:
下面是res/layout/activity_main.xml 布局文件:
<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"
tools:context="com.example.text.MainActivity$PlaceholderFragment" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="省份:" />
<AutoCompleteTextView
android:id="@+id/autoCompleteTextViewId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:hint="请输入省份"/>
</LinearLayout>
android:completionThreshold=”1″ 属性设置了一个阀值,规定用户打了多少字符之后才出现自动提示
默认值是2,我们在这里改成了1。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Text</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string-array name="province">
<item>shan dong</item>
<item>jiang su</item>
<item>an hui</item>
<item>zhe jiang</item>
<item>fu jian</item>
<item>shang hai</item>
<item>guang dong</item>
<item>guang xi</item>
<item>hai nan</item>
<item>hu bei</item>
<item>hu nan</item>
<item>he nan</item>
<item>jiang xi</item>
<item>bei jing</item>
<item>tian jin</item>
<item>he bei</item>
<item>shan xi</item>
<item>nei meng gu</item>
<item>ning xia</item>
<item>xin jiang</item>
<item>qing hai</item>
<item>shan xi</item>
<item>gan su</item>
<item>si chuan</item>
<item>yun nan</item>
<item>gui zhou</item>
<item>xi zang</item>
<item>chong qing</item>
<item>liao ning</item>
<item>ji lin</item>
<item>hei long jiang</item>
<item>tai wan</item>
<item>xiang guang</item>
<item>ao men </item>
<item>山东</item>
<item>江苏</item>
<item>安徽</item>
<item>浙江</item>
<item>福建</item>
<item>上海</item>
<item>广东</item>
<item>广西</item>
<item>海南</item>
<item>湖北</item>
<item>湖南</item>
<item>河南</item>
<item>江西</item>
<item>北京</item>
<item>天津</item>
<item>河北</item>
<item>山西</item>
<item>内蒙古</item>
<item>宁夏</item>
<item>新疆</item>
<item>青海</item>
<item>陕西</item>
<item>甘肃</item>
<item>四川</item>
<item>云南</item>
<item>贵州</item>
<item>西藏</item>
<item>重庆</item>
<item>辽宁</item>
<item>吉林</item>
<item>黑龙江</item>
<item>台湾</item>
<item>香港</item>
<item>澳门</item>
</string-array>
</resources>
下面是自已定义的spinner的UI格式:
新建一个res/layout/list_item.xml文件,写入如下代码:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:textSize="16sp"
android:textColor="#000">
</TextView>
下面是MainActivity主界面文件:
public class MainActivity extends Activity {
private AutoCompleteTextView auto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//定义数组
String[] province=getResources().getStringArray(R.array.province);
//找到自动完成组件
auto= (AutoCompleteTextView) findViewById(R.id.autoCompleteTextViewId);
//定义数组适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, province);
//为其设置适配器
auto.setAdapter(adapter);
}
}
注意:定义数组不能写在类前面,否则会报错,挺难发现的!
示例二:
下面是res/layout/activity_main.xml 布局文件:
<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"
tools:context="com.example.text.MainActivity$PlaceholderFragment" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="省份:" />
<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextViewId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:hint="请输入省份" />
</LinearLayout>
下面是MainActivity主界面文件:
public class MainActivity extends Activity {
private MultiAutoCompleteTextView auto;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//定义数组
String[] province=getResources().getStringArray(R.array.province);
auto=(MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextViewId);
//定义数组适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, province);
auto.setAdapter(adapter);
//设置以逗号为分隔符为结束的
auto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
Take your time and enjoy it 要原码的、路过的、学习过的请留个言,顶个呗~~