其中最重要的部分是应用了SimpleCursorAdapter
并且模糊查询处的语句
Cursor newCursor = helper.query("person", "pname
like ?", new String[]{query+"%"});
public class MainActivity extends Activity {
002
003 private ListView lv;
004 private SearchView sv;
005 private MySqliteHelper helper;
006 private SimpleCursorAdapter adapter;
007
008 @Override
009 protected void onCreate(Bundle savedInstanceState) {
010 super.onCreate(savedInstanceState);
011 setContentView(R.layout.activity_main);
012 lv = (ListView) findViewById(R.id.lv);
013 sv = (SearchView) findViewById(R.id.search);
014
015 helper = new MySqliteHelper(this);
016 Cursor cursor = helper.query("person");
017 adapter = new SimpleCursorAdapter(this, R.layout.listview, cursor, new String[]{"_id","pname","tel"}, newint[]{R.id.tvid,R.id.tvname,R.id.tvtel}, SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
018 lv.setAdapter(adapter);
019
020 sv.setOnQueryTextListener(new OnQueryTextListener() {
021
022 @Override
023 public boolean onQueryTextSubmit(String query) {
024 //
TODO Auto-generated method stub
025 Cursor newCursor = helper.query("person", "pname
like ?", new String[]{query+"%"});
026 adapter.swapCursor(newCursor);
027 return false;
028 }
029 @Override
030 public boolean onQueryTextChange(String newText) {
031 //
TODO Auto-generated method stub
032 return false;
033 }
034 });
035 }
036 }
037
038
039
040 public class MySqliteHelper extends SQLiteOpenHelper {
041
042 private static final String DBNAME = "persons.db";
043 private static final int VERSION = 1;
044 private SQLiteDatabase db;
045 public MySqliteHelper(Context context) {
046 super(context, DBNAME, null, VERSION);
047 //
TODO Auto-generated constructor stub
048 }
049
050 @Override
051 public void onCreate(SQLiteDatabase db) {
052 //
TODO Auto-generated method stub
053 this.db = db;
054 String sql = "create
table if not exists person(_id integer primary key autoincrement,pname text,tel text)";
055 db.execSQL(sql);
056
057 ContentValues cv = new ContentValues();
058 cv.put("pname", "张小贝");
059 cv.put("tel", "1231435678625");
060 db.insert("person", "pname", cv);
061 cv = new ContentValues();
062 cv.put("pname", "张小奇");
063 cv.put("tel", "1234532454325");
064 db.insert("person", "pname", cv);
065 cv = new ContentValues();
066 cv.put("pname", "赵小强");
067 cv.put("tel", "123498765325");
068 db.insert("person", "pname", cv);
069 cv = new ContentValues();
070 cv.put("pname", "刘二丫");
071 cv.put("tel", "1234567325");
072 db.insert("person", "pname", cv);
073 cv = new ContentValues();
074 cv.put("pname", "阿亚尔");
075 cv.put("tel", "098764345675425");
076 db.insert("person", "pname", cv);
077 cv = new ContentValues();
078 cv.put("pname", "清远飘逸");
079 cv.put("tel", "45654134778765");
080 db.insert("person", "pname", cv);
081 cv = new ContentValues();
082 cv.put("pname", "怡情");
083 cv.put("tel", "1234532454325");
084 db.insert("person", "pname", cv);
085 cv = new ContentValues();
086 cv.put("pname", "超脱");
087 cv.put("tel", "1234532454325");
088 db.insert("person", "pname", cv);
089 }
090
091 @Override
092 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
093 if(newVersion>oldVersion){
094 db.execSQL("drop
table person");
095 onCreate(db);
096 }
097 }
098 public long insert(String tableName,ContentValues values){
099 if(db==null){
100 db = getReadableDatabase();
101 }
102 return db.insert(tableName, null, values);
103 }
104 public int update (String table,ContentValues values,String whereClause,String[] whereArgs){
105 if(db==null){
106 db = getReadableDatabase();
107 }
108 return db.update(table, values, whereClause, whereArgs);
109 }
110 public int delete(String table,String whereClause,String[] whereArgs){
111 if(db==null){
112 db = getReadableDatabase();
113 }
114 return db.delete(table, whereClause, whereArgs);
115 }
116 public Cursor query(String table){
117 if (null==db) {
118 db=getReadableDatabase();
119 }
120 return db.query(table, null, null, null, null, null, null);
121 }
122 public Cursor query(String table,String where,String[] whereArgs){
123 if(db==null){
124 db = getReadableDatabase();
125 }
126 return db.query(table, null, where, whereArgs, null, null, null);
127 }
128 public void destory(){
129 if(db==null){
130 db.close();
131 }
132 }
133 }