AutoCompleteTextView与Cursor的使用

来源:互联网 发布:iphone6s屏幕检测软件 编辑:程序博客网 时间:2024/05/18 18:16

AutoCompleteTextView是一个继承自EditView可编辑的文本视图,能够实现动态匹配输入的内容。如google搜索引擎当输入文本时可以根据内容显示匹配的热门信息。

AutoCompleteTextView的使用,其实主要是SimpleCursorAdapter的使用

SimpleCursorAdapter需要复写以下方法

1,重构

public AutoCompleteAdater(Context context, int layout, Cursor c, int to,String areakey,String areavalue) {
super(context, layout, c, new String[] { SchoolDao.COLUMN_NAME_NAME }, new int[] { to });

}

2,

@Override
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
Cursor result = null;
if (constraint != null) {
result = getSchoolDao().getSchoolsByName( ((String) constraint) ,areakey,areavalue);
return result;
} else {
return result;
}
}

3,

@Override
public CharSequence convertToString(Cursor cursor) {
return cursor.getString(cursor.getColumnIndex(SchoolDao.COLUMN_NAME_NAME));
}


Cursor与SQLiteDatabase的使用

两种:

1,cursor = db.query(TABLE_NAME,null, areakey+"= ? and schoolName like ?", new String[]{areavalue,"%"+name+"%"}, null, null, null);

2,cursor = db.rawQuery("select * from "+ TABLE_NAME+" where "+areakey+" = ? and "+ COLUMN_NAME_NAME +
" like ?", new String[]{areavalue,"%"+name+"%"});

都可以!


PS:最后需要注意的一点是,SimpleCursorAdapter相关的数据表查询,该表需要添加一个_id的主键。如下:

SCHOOLS_TABLE_CREATE = "CREATE TABLE "
+ SchoolDao.TABLE_NAME + " (_id integer primary key autoincrement,"
+ SchoolDao.COLUMN_NAME_ID +" TEXT, "
      +SchoolDao.COLUMN_NAME_NAME+" TEXT,"
      + SchoolDao.COLUMN_NAME_PROVINCEID +" TEXT, "
      +SchoolDao.COLUMN_NAME_PROVINCENAME+" TEXT,"
      + SchoolDao.COLUMN_NAME_CITYID +" TEXT, "
      +SchoolDao.COLUMN_NAME_CITYNAME+" TEXT,"
      + SchoolDao.COLUMN_NAME_REGIONID +" TEXT, "
      +SchoolDao.COLUMN_NAME_REGIONNAME+" TEXT);";

0 0
原创粉丝点击