安卓學習04

2022-05-05 18:15:14 字數 2999 閱讀 7226

今天主要學習了資料庫的遷移。

原先的entity可以直接修改,例如原來的為:

package

com.example.roombasic;

​import

androidx.room.columninfo;

import

androidx.room.entity;

import

androidx.room.primarykey;

​@entity

public

class

word

public

intgetid()

public

void setid(int

id)

public

string getword()

public

void

setword(string word)

public

string getchinesemean()

public

void

setchinesemean(string chinesemean)

}

可以直接修改為:

package

com.example.roombasic;

​import

androidx.room.columninfo;

import

androidx.room.entity;

import

androidx.room.primarykey;

​@entity

public

class

word

public

void setok(boolean

ok)

public

word(string word, string chinesemean)

public

intgetid()

public

void setid(int

id)

public

string getword()

public

void

setword(string word)

public

string getchinesemean()

public

void

setchinesemean(string chinesemean)

}

新新增的屬性記得新增get和set函式。

不保留原有資料的修改,可以直接將資料庫類的版本修改為原版本+1,然後構建資料庫類的時候新增乙個.fallbacktodestructivemigration()。

package

com.example.roombasic;

​import

android.content.context;

​import

androidx.room.database;

import

androidx.room.room;

import

androidx.room.roomdatabase;

@database(entities = ,version = 2,exportschema = false

)public

abstract

class worddatabase extends

roomdatabase

return

instance;

}​

public

abstract

worddao getworddao();

}

此時需要使用另乙個方法.addmigrations(),並新增自定義的遷移方式,如:

package

com.example.roombasic;

​import

android.content.context;

​import

androidx.annotation.nonnull;

import

androidx.room.database;

import

androidx.room.room;

import

androidx.room.roomdatabase;

import

androidx.room.migration.migration;

import

androidx.sqlite.db.supportsqlitedatabase;

​@database(entities = ,version = 2,exportschema = false

)public

abstract

class worddatabase extends

roomdatabase

return

instance;

}​

public

abstract

worddao getworddao();

private

static

final migration migration_1_2 = new migration(1,2)

};}

安卓學習 spinner控制項

安卓提供了一種下拉列表式的控制項 spinner,實現這個控制項主要就是配置arrayadapter這個介面卡,下面就記錄配置該介面卡的兩種方法。一.通過createfromresource方法建立乙個arrayadapter物件 1.首先在布局檔案中定義乙個spinner控制項 2.建立乙個arr...

安卓學習問題彙總

1.textview.settext string text text必須為string,如果傳入int,不會報編譯錯誤,但是會報執行時異常。2.獲取乙個view的幾種方法 a 傳入int context.findviewbyid int b 傳入string 通過反射獲取 c 給view設定tag...

安卓學習筆記二

1 安卓intent啟動系統activity 1 啟動瀏覽器 intent intent new intent intent.setaction intent.action view uri url uri.parse intent.setdata url startactivity intent ...