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

本文介绍了如何在Android开发中实现自动联想查询功能,通过使用AutoCompleteTextView控件和自定义适配器来完成数据查询和显示。示例代码演示了如何从数据库获取数据并进行联想,以及如何为控件添加输入监听事件。
摘要由CSDN通过智能技术生成

 

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; // list
	AutoCompleteTextView carno; // 控件

	@Override
	public 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放入adapter
			
		carno.setAdapter(av); //显示到控件中,这样就完成了数据的查询和显示

		//为控件加入输入监听事件,下面的方法都是系统方法,会自动生成,不用管他
		carno.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// TODO Auto-generated method stub

			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {
				// TODO Auto-generated method stub

			}

			@Override
			public void afterTextChanged(Editable s) {
				// TODO Auto-generated method stub

			}
		});

	}

}

好了,这是一个简单的联想查询,希望能帮到大家!有问题可以留言,我也是新手,边学习,边记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值