這次也順便嘗試button事件另一種寫法,先前在button基礎練習篇有看到那時的寫法是用一個Listener來偵測button有沒有被按下,但有些書上還會要我們在mail主檔上的button加入
android:onClick=這個描述既然都有Listener來偵測那幹嘛還要加入這個描述就算拿掉指令也OK,其實這是兩種寫法
1.用Listener去偵測事件
2.直接用button的佈局檔來描述
其實兩種都能達成我們的目的
這一次我們就用第二種我認為比較簡單的方法寫看看

上圖為這次的佈局兩個button和一個Textview

這次我們在布局檔中加上onclick描述
然後我們要先來學習如何創建資料庫(以下稱為DB),在oncreate的階段我們就必須把DB創建完成,
創建一個資料表(以下稱為TB),欄位為name、phone、mail
db=openOrCreateDatabase(dbname, Context.MODE_PRIVATE,null); //建立資料庫名稱模式為私人模式String createTable="CREATE TABLE IF NOT EXISTS "+ tbname+ "(name VARCHAR(32),"+ "phone VARCHAR(16),"+ "mail VARCHAR(64))"; db.execSQL(createTable);//創建並定義資料表架構 public void readData(View view){//負責讀取 String str=""; displayData("I am read data"); Cursor cursor=db.rawQuery("SELECT * FROM "+tbname,null); if(cursor.getCount()==0){ displayData("tb is null"); return; } if(cursor.moveToFirst()){ do{ str+="name:"+ cursor.getString(0)+"\n"; str+="phone:"+ cursor.getString(1)+"\n"; str+="mail:"+ cursor.getString(2)+"\n"; str +="\n"; }while (cursor.moveToNext());//逐行讀取 } displayData(str);//顯示資料 } public void writeData(View view){ displayData("I am write data"); addData("linrichard", "0980416449", "linrichard@yahoo.com.tw"); } private void displayData(String message) { TextView print=(TextView) findViewById(R.id.textView); print.setText(message); } private void addData(String name, String phone, String mail) { ContentValues hm =new ContentValues(); hm.put("name",name); hm.put("phone",phone); hm.put("mail",mail); db.insert(tbname,null,hm); }上面可以看到writeData和readData的傳入參數都是設為view這樣就能完成事件連結,這裡分成讀取跟寫入
讀取:用cursor物件下達查詢指令如果裡面有資料則移動到第一筆用do-while逐行讀出並在display函數負責顯示
寫入:用ContentValues("key",value)將資料insert進資料庫中
以下為結果畫面
資料表為空則顯示tb is null
寫入
讀取
如果要清理資料庫資料可在App管理中clear data
沒有留言:
張貼留言