Android中如何使用AutoCompleteTextView

今天新学了一个AutoCompleteTextView高级控件,当初写Java实现Ajax自动补全的时候就感觉很好玩,今天使用AutoCompleteTextView后感觉更简单了,所以特意整理一下分享出来

实现思路:

第一步:在xml中用一个AutoCompleteTextView标签、competionThreshold是从第几个字开始

第二步:编辑相对应的java,获取控件AutoCompleteTextView

第三步:在res-values-strings.xml中定义一个string-array,标签内写item

第四步:再回到java代码中,获取第三步定义的string-array

第五步:实例化一个适配器,设置参数,第二个参数需要在layout中实例化一个xml,为你自己的内容写一个TextView的控件,只需要一个,所以要改掉根标签,只存在一个TextView。

第六步:在java代码中给控件设置适配器


xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.g160628_android07_widgetplus.MainActivity">
    <!--定义一个AutoCompleteTextView
        设置当文本框有一个字的时候进行补全(设置completionThreshold)
    -->
    <AutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="1"
        android:id="@+id/actv_main_auto"
        />

</LinearLayout>
java中:

package com.example.g160628_android07_widgetplus;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends AppCompatActivity {

    private AutoCompleteTextView actv_main_auto;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //根据id获取你的AutoCompleteTextView
        actv_main_auto = (AutoCompleteTextView) findViewById(R.id.actv_main_auto);

        //获取value中的字符串数组
        String data[]=getResources().getStringArray(R.array.data);
        //实例化一个适配器(适配器的参数为,上下文,文本格式,数组)
        ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item_actv,data);
        //给控件设置适配器
        actv_main_auto.setAdapter(adapter);
    }
}
layout中的xml文本格式

<?xml version="1.0" encoding="utf-8"?>
<!--
        自己写的一个文本格式
-->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/tv_item_actv_text"
    android:textSize="30sp"
    >

</TextView>
strings.xml

<resources>
    <string name="app_name">G160628_android07_widgetPlus</string>
    <!--
        定义一个string-array,并命一个名字
    -->
    <string-array name="data">
        <item>张三</item>
        <item>张三丰</item>
        <item>李四</item>
        <item>李四他爹</item>
        <item>王五</item>
        <item>王二小</item>
        <item>蛋蛋</item>
        <item>狗蛋</item>
        <item>妞妞</item>
        <item>二狗子</item>
    </string-array>
</resources>

欢迎各位指点一二
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章