歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發:自動補全與SQLite聯合的例子

從上一個例子(Android自動補全教程 http://www.linuxidc.com/Linux/2012-01/51326.htm )可以看到自動補全是很簡單的,今天再深入一點,ArrayAdapter提供的字符串從數據庫中查詢,並且使用MultiAutoCompleteTextView控件。

此控件和AutoCompleteTextView的最大區別是可以補全多個詞,看名字就能知道,呵呵。

效果如下,每個詞中間用逗號分割。


首先

布局和上一個例子相同。

創建一個名為list_item.xml的XML文件並把它保存在res/layout/文件夾下。編輯文件像下面這樣:

[html]
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <TextView xmlns:android="http://schemas.android.com/apk/res/android"    
  3.     android:layout_width="fill_parent"    
  4.     android:layout_height="fill_parent"    
  5.     android:padding="10dp"    
  6.     android:textSize="16sp"    
  7.     android:textColor="#000">    
  8. </TextView>   

這個文件定義了一個簡單的TextView來顯示提示列表的每一項。

打開 res/layout/main.xml文件加入如下內容:

[html]
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <TextView  
  8.         android:id="@+id/tv"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:text="@string/hello" />  
  12.     <MultiAutoCompleteTextView   
  13.         android:id="@+id/mactv"  
  14.         android:layout_width="fill_parent"  
  15.         android:layout_height="wrap_content"  
  16.         />  
  17. </LinearLayout>  

下面就來設計我的數據庫,名字為person,要建一個person表,有兩個字段:name和gender。

新建一個SQLiteHelper類,繼承自SQLiteOpenHelper:

[java]
  1. package com.linc.autosqlite.dao;  
  2.   
  3.   
  4. import android.content.Context;  
  5. import android.database.Cursor;  
  6. import android.database.sqlite.SQLiteDatabase;  
  7. import android.database.sqlite.SQLiteOpenHelper;  
  8.   
  9. /** 
  10.  * 實現對表的創建、更新、變更列名操作 
  11.  * @author lincyang 
  12.  * 
  13.  */  
  14. public class SQLiteHelper extends SQLiteOpenHelper {  
  15.     public static final String DB_NAME = "person";  
  16.     public static final int DB_VERSION = 1;  
  17.     protected static Context ctx;  
  18.   
  19.     //   
  20.     //構造函數一:傳context   
  21.     //   
  22.     public SQLiteHelper(Context context) {  
  23.         super(context, DB_NAME, null, DB_VERSION);  
  24.         ctx = context;  
  25.     }  
  26.     //   
  27.     //構造函數二   
  28.     //   
  29.     public SQLiteHelper() {  
  30.         super(ctx,DB_NAME, null, DB_VERSION);  
  31.     }  
  32.       
  33.     @Override  
  34.     public void onCreate(SQLiteDatabase db) {  
  35.         String sql = "create table person(name varchar(20) not null , " +  
  36.                 "gender varchar(10) not null );";  
  37.         db.execSQL(sql);  
  38.     }  
  39.       
  40.     @Override  
  41.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  42.         // TODO Auto-generated method stub   
  43.           
  44.     }  
  45.     protected void closeCursor(Cursor cursor) {  
  46.         if (cursor != null) {  
  47.             cursor.close();  
  48.         }  
  49.     }  
  50. }  
Copyright © Linux教程網 All Rights Reserved