有少數讀者反映,本系列文章,讓人看了直翻白眼,甚有怪咖、鬼月看鬼文的評論在坊間傳出。看完普遍的感覺是下圖。



殊不知,專業知識文就是這麼硬啊! (兩手一攤....)
進入到資料庫,慢慢地在理解Android設計的邏輯,包括之前的Bundle (4. 把計算完的BMI值丟到Bundle包裹塞到Intent裡),到現在進入的Adapter, Cursor等等,Android相當重視界面之間的對話,還有資料的整理。
課堂實做一個新記帳功能APP,可以記錄消費日期、名稱、金額,列式如下:

1. MainActivity: 新增和查詢2個Button,新增的話到AddActivity介面去,查詢的話到ExpenseList介面去。

public void add (View v){
Intent intent= new Intent(this, AddActivity.class);
startActivity(intent);
}
public void list (View v){
Intent intent= new Intent(this, ExpenseListActivity.class);
startActivity(intent);
}

2. AddActivity新增的畫面,利用上一回談到的新增資料到資料庫的方法。



3. ExpenseList列示出用戶已經輸入的資料,這比較難一點。

  3-1 新增ListView (清單原始規格)


  3-2 用戶輸入的資料,已經存在資料庫裡面,須要用Cursor指令把想查詢的東西叫出來,查出來的結果要透過一個功能類似連接器的東西Adapter,把資料插進去畫面裡,因此可以想像Cursor和Adapter分別需要來自不同資料和不同介面I/O,自然有各種XXCursor, XXAdapter。

ListView list= (ListView)findViewById(R.id.mylist); 
DBHelper helper= new DBHelper(this, "exp.db", null, 1); 
Cursor c= helper.getReadableDatabase().query("expense", null, null, null, null, null, null); Cursor可以設定的查詢資料參數很多,第一次學,先不設定條件。
String[] from= {"name"}; 字串陣列[]叫做from,也就是資料庫裡的name值
int[] to= {android.R.id.text1}; int陣列[]叫做to,把資料丟到android內建ListView(只有內建simple list item 1 and 2)的Text1裡
SimpleCursorAdapter adapter= new     SimpleCursorAdapter(this,android.R.layout.simple_list_item_1, c, from, to);
list.setAdapter(adapter); SimpleCursorAdapter把cursor查到的資料,透過連接器轉換成畫面會讀的東西,最後list (3-1新增的清單ListView的id)上插入連接器(setAdapter)
4. 成果: 輸入三筆課程資料diving, japanese, windwater個別學費(只是假設),進到adb shell去查詢,果然存在資料庫裡!


最後,按下查詢,跑出來cursor去cue的名稱列表!!


收工!! 中華隊加油!!!!












arrow
arrow
    全站熱搜

    brianc18 發表在 痞客邦 留言(0) 人氣()