Android自动补全(一)

xiaoxiao2021-02-28  22

android自动补全 在activtity_main.xml 文件中写一个AutoCompleteTexView(自动完成文本框)标签 <AutoCompleteTextView android:id="@+id/actv_main_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="1" /> 在MainActivity.java的文件中 根据id获取自动完成的文本框autoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.actv_main_1); 在数据库中获取数据\在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); } } 一句话:自己的优秀习惯要将动力放在自己身上,不要把想要让自己更优秀的习惯放在别人身上,我们不能让任何人在某时出现的意外而影响我们的成长。

转载请注明原文地址: https://www.6miu.com/read-1400226.html

最新回复(0)