安卓基礎_5

sqlite介紹

sqlite:輕量級數據庫->不區分數據類型 嵌入式數據庫->不需要安裝相應的軟件支持 直接調用系統提供的API就可以使用了

創建數據庫實際上就是一個特殊的一個文件 這個文件在包下面

如何創建一個數據庫

[1]定義一個類繼承SQLiteOpenHelper 
[2]在SQLiteOpenHelper中onCreate方法中執行sql語句
    [2.1]create table info(_id integer primary key autoincrement,name text,age text)
    [2.2]alter table info add sex text

注意事項

[1]Android推薦在建立表的時候用_id作爲主鍵
[1]自增長設置  _id integer primary key autoincrement
[2]sqlite不能降級
[3]使用就像File對象操作 創建對象 不會創建數據庫

使用sql語句進行增刪改查

[1]getReadableDatabase 獲取一個可讀數據庫 會先獲取一個getWritableDatabase 當磁盤滿了 只返回可讀
[2]getWritableDatabase 獲取一個可寫數據庫    當磁盤滿了 報錯

增[1]insert into info values(null,'張三',18,'男')
查[2]select * from info;
改[3]update info set age='20' where  name='張三'
刪[4]delete from info where name='張三'

使用谷歌封裝好的API完成增刪改查

[1]使用sql語句實現增刪改查非常容易出錯
[2]nullColumnHack: 當values參數爲空或者裏面沒有內容的時候,insert是會失敗的

android事務操作

事務:要麼代碼執行都成功,要麼代碼執行都失敗

    [1]create table info(_id integer primary key autoincrement,name text,money text)
    [2]insert into info values(null,'小明',2000)
    [2]insert into info values(null,'小紅',3000)

事務的標準寫法:
    db.beginTransaction();
    try {
        ...
        db.setTransactionSuccessful();
    } finally {
        db.endTransaction();
    }
業務邏輯:
    [1]update info set money = money-200 where name='張三'
    [2]update info set money = money+200 where name='李四'
事務沒有執行成功 就會執行回滾操作,實際上就是撤消之前的操作

ListView入門

簡介:
    [1]垂直滾動的列表
    [2]item內容來自於Adapter

ListView的優化

[1]屏幕顯示多少個item gteView方法就調用 多少次
[2]convertView 歷史緩存對象

ListView顯示覆雜佈局

infalte的獲取方式:
    [1]View.inflate();
    [2]LayoutInflater.from();
    [3]getSystemService();

ListView原理

mvc:Mode(JavaBean) View(ListView) Controller(Adapter)

Adapter負責把數據展示到View上面去

  • ListView奇怪現象
    • 使用ListView必須要注意 高度避免使用wrap_content

arrayAdapter的使用

ListView的Item只要一個控件的時候考慮使用

String[] s=new String[]{"張三","李四","王五"};
lv.setAdapter(new ArrayAdapter<String>(this,R.layout.item, R.id.tv, s));    

simpleAdapter的使用

ListView的Item有多個控件的時候考慮使用

HashMap<String, String> map3 = new HashMap<String, String>();
map3.put("xingming", "張三");
map3.put("dianhua", "13000000");

lv.setAdapter(new SimpleAdapter(this, data, R.layout.items,
        new String[] { "xingming", "dianhua" }, new int[] { R.id.name,
                R.id.phone })); 

ListView展示真實數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章