如何实现自动补全?

来源:互联网 发布:电脑设计绘图软件 编辑:程序博客网 时间:2024/04/30 00:19

     今天会讲AutoCompleteTest(自动补全),也就是相当于jsp servlet中的AJAX,先来看看运行的结果


   在layout文件下生成布局文件


<AutoCompleteTextView       android:layout_width="wrap_content"       android:layout_height="wrap_content"        android:id="@+id/actv_main_auto"       android:completionThreshold="1"  字符提示数       />


当然在实现自动补全的情况下得有数据,所以先去values文件下的strings.xml里面添加数据

<resources>    <string name="app_name">    </string>    <string-array name="names">        <item>张三</item>        <item>李四</item>        <item>小可爱</item>        <item>洛阳</item>        <item>张四</item>        <item>李小二</item>        <item>混蛋</item>        <item>神经</item>    </string-array></resources> 
编写Java代码
package com.example.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);        actv_main_auto = (AutoCompleteTextView) findViewById(R.id.actv_main_auto);       //获取字符串数组(也可以自己在Java代码中定义字符串数组)        String data[]=getResources().getStringArray(R.array.data);//名字要一致       //将字符串数组给于ID,但是不能直接赋予,所以要通过中间适配器来实现这项功能        //适配器(适配器有许多种)           //第二个放值:判定布局文件(不能调用本类的布局文件,得自己重写一个布局文件)        ArrayAdapter adpter=new ArrayAdapter(this,R.layout.item_test,data);       //给控件设置适配器        actv_main_auto.setAdapter(adpter);    }}



重写布局文件
<?xml version="1.0"encoding="utf-8"?><TextViewxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:text="30dp"></TextView>

在写这次代码是报了一个错误,这是因为在重写布局文件时没有将LinearLayout布局删掉


 
原创粉丝点击