Guest User

Untitled

a guest
Jun 25th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. @Database(entities = {Word.class}, version = 2)
  2. public abstract class AppDatabase extends RoomDatabase {
  3. private static AppDatabase sInstance;
  4.  
  5. public abstract WordDao wordDao();
  6.  
  7. public static AppDatabase getInstance(Context context) {
  8. if (sInstance == null) {
  9. synchronized (AppDatabase.class) {
  10. if (sInstance == null) {
  11. sInstance = Room.databaseBuilder(context.getApplicationContext(),
  12. AppDatabase.class, "word.db").addMigrations(new Migration(1, 2) {
  13. @Override
  14. public void migrate(@NonNull SupportSQLiteDatabase database) {
  15. }
  16. }).build();
  17. }
  18. }
  19. }
  20.  
  21. return sInstance;
  22. }
  23.  
  24. @Entity
  25. public class Word {
  26. @PrimaryKey(autoGenerate = true)
  27. public int uid;
  28.  
  29. public String word;
  30.  
  31. public Word(String word) {
  32. this.word = word;
  33. }
  34.  
  35. @Dao
  36. public interface WordDao {
  37. @Query("Select * from word")
  38. LiveData<List<Word>> getAll();
  39.  
  40. @Update
  41. void update(Word word);
  42.  
  43. @Insert
  44. void insert(Word word);
  45.  
  46. @Override
  47. protected void onCreate(Bundle savedInstanceState) {
  48. super.onCreate(savedInstanceState);
  49. setContentView(R.layout.activity_main);
  50.  
  51. TextView tv = findViewById(R.id.textview);
  52.  
  53. WordDao dao = AppDatabase.getInstance(this).wordDao();
  54.  
  55. dao.getAll().observeForever(wordlist -> {
  56. StringBuilder builder = new StringBuilder();
  57.  
  58. for (Word w : wordlist ) {
  59. builder.append(w.word).append(", ");
  60. }
  61.  
  62. tv.setText(builder.toString());
  63. });
  64.  
  65. findViewById(R.id.add).setOnClickListener(view -> new Thread(() -> {
  66. dao.insert(new Word("haha"));
  67. }).start());
  68. }
  69.  
  70. dependencies {
  71. def lifecycle_version = "1.1.1"
  72. implementation "android.arch.lifecycle:extensions:$lifecycle_version"
  73. implementation "android.arch.lifecycle:common-java8:$lifecycle_version"
  74. testImplementation "android.arch.core:core-testing:$lifecycle_version"
  75.  
  76. def room_version = "1.1.1"
  77. implementation "android.arch.persistence.room:runtime:$room_version"
  78. annotationProcessor "android.arch.persistence.room:compiler:$room_version"
  79. testImplementation "android.arch.persistence.room:testing:$room_version"
  80. }
Add Comment
Please, Sign In to add comment