android之输入内容会进行联想并且消除重复项

来源:互联网 发布:27世纪人工智能系统gif 编辑:程序博客网 时间:2024/05/17 04:21

 

andorid开发时经常会遇到输入内容后进行联想。比如:输入‘平’,咱就会让他自动联想到‘平安’,‘平山’,‘平泉’等等吧。。前提是你数据库有这些数据。。。

好的,下面贴代码:

1 。  xml 代码:

 

 <AutoCompleteTextView                android:id="@+id/tv_Framenumber"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_centerVertical="true"                android:layout_marginLeft="10dp"                android:layout_marginRight="30dp"                android:completionThreshold="1"                android:dropDownVerticalOffset="5dp"                android:layout_toRightOf="@+id/ill_tv_cjh"                android:background="@android:color/transparent"                android:ems="10"                android:hint="请输入车架号"                android:singleLine="true"                android:textSize="14sp" />


这里关键是得用AutoCompleteTextView这个控件。其次要指定他输入几个字进行联想。。我这里设置的1。android:completionThreshold="1"。

2.贴java代码:

package com.wtr.activity;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.text.Editable;import android.text.TextWatcher;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import com.wrd.R;import com.wrd.dao.BaseDao;import entity.Illegalqueries;public class IllegalqueriesActivity extends Activity {// 定义全局变量ArrayAdapter<String> av = null; // 工具类List<String> allcarno = null; // listAutoCompleteTextView carno; // 控件@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_illegalqueries);//数据库查询操作,。这里我封装的,大家知道意思就行了allcarno = new ArrayList<String>();BaseDao basedaoc = new BaseDao(getApplicationContext());List<Illegalqueries> wzlistc = basedaoc.findAllByWhere(Illegalqueries.class, "1=1 group by carno");for (Illegalqueries il : wzlistc) {allcarno.add(il.getCarno());//遍历车牌号放入list中}carno = (AutoCompleteTextView) findViewById(R.id.tv_carnumber);//得到控件av = new ArrayAdapter<String>(IllegalqueriesActivity.this,R.layout.down, allcarno);//将list放入adaptercarno.setAdapter(av); //显示到控件中,这样就完成了数据的查询和显示//为控件加入输入监听事件,下面的方法都是系统方法,会自动生成,不用管他carno.addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) {// TODO Auto-generated method stub}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {// TODO Auto-generated method stub}@Overridepublic void afterTextChanged(Editable s) {// TODO Auto-generated method stub}});}}

好了,这是一个简单的联想查询,希望能帮到大家!有问题可以留言,我也是新手,边学习,边记录
原创粉丝点击