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

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

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

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

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

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

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ù)庫(kù)表
    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ù)庫(kù)
   */
  @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開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)

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

相關(guān)文章

  • Android編程圖片加載類ImageLoader定義與用法實(shí)例分析

    Android編程圖片加載類ImageLoader定義與用法實(shí)例分析

    這篇文章主要介紹了Android編程圖片加載類ImageLoader定義與用法,結(jié)合實(shí)例形式分析了Android圖片加載類ImageLoader的功能、定義、使用方法及相關(guān)操作注意事項(xiàng),代碼中備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2017-12-12
  • JetpackCompose Navigation導(dǎo)航實(shí)現(xiàn)流程

    JetpackCompose Navigation導(dǎo)航實(shí)現(xiàn)流程

    Navigation是Jetpack用于Android導(dǎo)航的組件,作用是處理頁(yè)面跳轉(zhuǎn),以及頁(yè)面跳轉(zhuǎn)過(guò)程中的交互。使用Navigation,你就需要為每個(gè)頁(yè)面設(shè)定一條唯一路徑,它是一個(gè)String常量,形式是DeepLink的樣子,從一個(gè)頁(yè)面跳轉(zhuǎn)到另一個(gè)頁(yè)面,它通過(guò)輸入目的地的路徑進(jìn)行轉(zhuǎn)跳
    2023-01-01
  • Android簡(jiǎn)單實(shí)現(xiàn)自定義彈框(PopupWindow)

    Android簡(jiǎn)單實(shí)現(xiàn)自定義彈框(PopupWindow)

    本文主要介紹了Android利用PopupWindow實(shí)現(xiàn)自定義彈框的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • Android ListView和Adapter數(shù)據(jù)適配器的簡(jiǎn)單介紹

    Android ListView和Adapter數(shù)據(jù)適配器的簡(jiǎn)單介紹

    這篇文章主要介紹了Android ListView和Adapter數(shù)據(jù)適配器的簡(jiǎn)單介紹,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Android自定義View實(shí)現(xiàn)時(shí)鐘效果

    Android自定義View實(shí)現(xiàn)時(shí)鐘效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Android開(kāi)發(fā)之ViewPager實(shí)現(xiàn)滑動(dòng)切換頁(yè)面

    Android開(kāi)發(fā)之ViewPager實(shí)現(xiàn)滑動(dòng)切換頁(yè)面

    這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)之ViewPager實(shí)現(xiàn)滑動(dòng)切換頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android之在linux終端執(zhí)行shell腳本直接打印當(dāng)前運(yùn)行app的日志的實(shí)現(xiàn)方法

    Android之在linux終端執(zhí)行shell腳本直接打印當(dāng)前運(yùn)行app的日志的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇關(guān)于Android之在linux終端執(zhí)行shell腳本直接打印當(dāng)前運(yùn)行app的日志的實(shí)現(xiàn)方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Android項(xiàng)目中g(shù)radle的執(zhí)行流程

    Android項(xiàng)目中g(shù)radle的執(zhí)行流程

    大家好,本篇文章主要講的是Android項(xiàng)目中g(shù)radle的執(zhí)行流程,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 詳談Android編譯命令

    詳談Android編譯命令

    本文給大家詳細(xì)介紹了Android中常用的編譯命令、用法以及注意事項(xiàng),非常的詳細(xì),有需要的小伙伴可以參考下
    2016-03-03
  • Android編程之內(nèi)存溢出解決方案(OOM)實(shí)例總結(jié)

    Android編程之內(nèi)存溢出解決方案(OOM)實(shí)例總結(jié)

    這篇文章主要介紹了Android編程之內(nèi)存溢出解決方案(OOM),結(jié)合實(shí)例實(shí)例總結(jié)分析了Android編程過(guò)程中常見(jiàn)的內(nèi)存溢出情況與對(duì)應(yīng)的解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11

最新評(píng)論

铁岭市| 巴塘县| 邵阳市| 神农架林区| 海丰县| 木里| 三门县| 双鸭山市| 深水埗区| 卢氏县| 江陵县| 东兴市| 庆阳市| 阿坝| 竹溪县| 兰西县| 峨眉山市| 通江县| 肥乡县| 潍坊市| 马山县| 五家渠市| 龙门县| 遂川县| 蓬安县| 灵寿县| 昌图县| 山西省| 浦东新区| 宝山区| 胶州市| 巩义市| 包头市| 河北区| 安塞县| 百色市| 萝北县| 石河子市| 四子王旗| 游戏| 高州市|