Android自动补全(一)

android自动补全
  1. 在activtity_main.xml 文件中写一个AutoCompleteTexView(自动完成文本框)标签
<AutoCompleteTextView
    android:id="@+id/actv_main_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:completionThreshold="1"
     />

  1. 在MainActivity.java的文件中
  1. 根据id获取自动完成的文本框autoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.actv_main_1);
  2. 在数据库中获取数据\在strings.xml的文件中写一个数组(在此以数组为例)
<resources>
    <string name="app_name">Android_08_0628</string>
    <string-array name="str_data">
        <item>李江</item>
        <item>李小龙</item>
        <item>李靖</item>
        <item>李月</item>
        <item>123</item>
        <item>10234</item>
        <item>12305</item>
        <item>12036</item>
    </string-array>
</resources>

获取数组的数据
String[] data = getResources().getStringArray(R.array.str_data);

.将数据放入文本框
a。使用(数组)适配器
 ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,data);
b。将适配器设置给控件
 autoCompleteTextView.setAdapter(adapter);
----运行发现要到第二个文字才开始出现自动补全,解决如下
在activity.xml的文件中的自动完成文本款中加入一行代码

android:completionThreshold="1"(设置几个字符提示)

总体如下
<AutoCompleteTextView
    android:id="@+id/actv_main_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:completionThreshold="1"
    />
####如果想要让自动补全框使用自己的形式,则可以自己写一个类似于android.R.layout. simple_list_item_1的文件
如下:在layout中新建一个complete_layout.xml
<?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@android:id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:textSize="20sp"
        android:textColor="#09A1FF"
         />

并将MainActivity.java中的
使用适配器的那一块
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,data);
改成
ArrayAdapter adapter = new ArrayAdapter(this,R.layout.complete_layout,data);



由此,自动补全完成了
所有代码如下
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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="pw.gutao.android_08_0628.MainActivity">

    <AutoCompleteTextView
        android:id="@+id/actv_main_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="1"
        />

</RelativeLayout>

Strings.xml
<resources>
    <string name="app_name">Android_08_0628</string>
    <string-array name="str_data">
        <item>李江涛</item>
        <item>李小龙</item>
        <item>李靖</item>
        <item>李月</item>
        <item>123</item>
        <item>10234</item>
        <item>12305</item>
        <item>12036</item>
    </string-array>
</resources>

MainActivity.java
package pw.gutao.android_08_0628;

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 autoCompleteTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取自动完成的文本款
        autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.actv_main_1);
        //获取数组
        String[] data = getResources().getStringArray(R.array.str_data);
        //将数据放入文本框
        //使用适配器  数组适配器(将数据通过Android自带的形式放入上下文中)
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,data);
        //将适配器设置给控件
        autoCompleteTextView.setAdapter(adapter);
        
    }
}


一句话:自己的优秀习惯要将动力放在自己身上,不要把想要让自己更优秀的习惯放在别人身上,我们不能让任何人在某时出现的意外而影响我们的成长。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒笑翻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值