最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android AutoCompleteTextView連接數(shù)據(jù)庫自動(dòng)提示的方法(附demo源碼下載)

 更新時(shí)間:2016年02月16日 12:24:56   作者:goleftgoright  
這篇文章主要介紹了Android AutoCompleteTextView連接數(shù)據(jù)庫自動(dòng)提示的方法,結(jié)合實(shí)例形式分析了AutoCompleteTextView操作數(shù)據(jù)庫的原理與具體技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下

本文實(shí)例講述了Android AutoCompleteTextView連接數(shù)據(jù)庫自動(dòng)提示的方法。分享給大家供大家參考,具體如下:

這個(gè)簡(jiǎn)單例子也體現(xiàn)MVC的思想。AutoCompleteTextView 就是View,而SimpleCursorAdapter就是Controller,SQLiteOpenHelper就相當(dāng)于Model。

1、首先定義MVC中的Model,自定義DBHelper類繼承SQLiteOpenHelper用于訪問數(shù)據(jù)庫

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
 *
 * @author lai_zs
 * @date:2012-2-16 下午4:16:02
 */
public class DBHelper extends SQLiteOpenHelper {
  private static final int DATABASE_VERSION = 1;
  private static final String DATABASE_NAME = "autoComplete.db";
  // 根據(jù)name自動(dòng)查詢
  public static final String NAME = "name";
  public DBHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
  }
  @Override
  public void onCreate(SQLiteDatabase db) {
    String sqlString = "createtable test (_id integer primary key autoincrement,name varchat(20) not null onconflict fail)";
    db.execSQL(sqlString);
    // 初始數(shù)據(jù)庫表
    String[] nameStrArrayStr = new String[] { "aaa", "abc", "cde", "中國(guó)", "美女", "提示" };
    for (int i = 0; i < nameStrArrayStr.length; i++) {
      db.execSQL("INSERT INTOtest(" + NAME + ")values(?)",new Object[] { nameStrArrayStr[i] });
    }
  }
  @Override
  public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    // do nothing here
  }
  /**
   * 根據(jù)輸入內(nèi)容模糊查詢
   * @param name
   * @return
   */
  public Cursor query(String name) {
    SQLiteDatabase db = this.getReadableDatabase();
    return db.rawQuery("select* from test where name like '%" + name + "%' limit 10",null);
  }
}

2、定義AutoCompleteAdater繼承SimpleCursorAdapter控制數(shù)據(jù)交互

import android.content.Context;
import android.database.Cursor;
import android.widget.SimpleCursorAdapter;
/**
 *
 * @author lai_zs
 * @date:2012-2-16 下午3:49:25
 */
public class AutoCompleteAdater extends SimpleCursorAdapter {
  private DBHelper dbHelper = null;
  private Context context;
  // 查詢字段
  private String queryField;
  public AutoCompleteAdater(Context context, int layout, Cursor c,String from, int to) {
    super(context, layout, c, new String[] { from },new int[] { to });
    this.context = context;
    this.queryField = from;
  }
  /**
   * 動(dòng)態(tài)查詢數(shù)據(jù)庫
   */
  @Override
  public Cursor runQueryOnBackgroundThread(CharSequenceconstraint) {
    if (constraint != null) {
      return getDbHelper().query((String) constraint);
    } else {
      return null;
    }
  }
  /**
   * 這里設(shè)置在彈出的提示列表中點(diǎn)擊某一項(xiàng)后的返回值,返回值將被顯示在文本框中
   */
  @Override
  public CharSequence convertToString(Cursor cursor) {
    return cursor.getString(cursor.getColumnIndex(queryField));
  }
  public DBHelper getDbHelper() {
    if (dbHelper == null) {
      dbHelper = new DBHelper(this.context);
    }
    return dbHelper;
  }
}

3、最后定義View

<AutoCompleteTextView
    android:id="@+id/autoCompleteTextView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text=""
    android:hint="@string/dbAutoComlete" >
    <requestFocus />
</AutoCompleteTextView>

4、在Activity中關(guān)聯(lián)View和Adapter

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    AutoCompleteAdatercursorAdapter = new AutoCompleteAdater(this, android.R.layout.simple_dropdown_item_1line,null, DBHelper.NAME, android.R.id.text1);
    // 設(shè)置輸入一個(gè)字符就彈出提示列表(默認(rèn)輸入兩個(gè)字符時(shí)才彈出提示)
    ((AutoCompleteTextView) this.findViewById(R.id.autoCompleteTextView1)).setThreshold(1);
    ((AutoCompleteTextView) this.findViewById(R.id.autoCompleteTextView1)).setAdapter(cursorAdapter);
}

完整實(shí)例代碼點(diǎn)擊此處本站下載。

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

清苑县| 克拉玛依市| 宜城市| 盘锦市| 鹤峰县| 增城市| 工布江达县| 兰西县| 新沂市| 漠河县| 鄂伦春自治旗| 安庆市| 偏关县| 天峻县| 外汇| 儋州市| 上栗县| 武义县| 苏尼特右旗| 逊克县| 墨脱县| 昌宁县| 岳西县| 兰州市| 金门县| 徐水县| 商丘市| 都兰县| 明水县| 绿春县| 原阳县| 府谷县| 汝州市| 油尖旺区| 古丈县| 多伦县| 菏泽市| 额济纳旗| 镇平县| 库车县| 遵化市|