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
}
});
}
}
好了,这是一个简单的联想查询,希望能帮到大家!有问题可以留言,我也是新手,边学习,边记录