草庐IT

room_book

全部标签

android - 如何更改 Room 数据库的默认位置?

我想更改Android房间数据库的位置。我知道数据库在文件系统中,我需要获得root权限,但我不想对我的手机进行root。想法是将数据库位置更改为SD卡,并且无需root我的手机即可访问它 最佳答案 只要把位置路径放在数据库的名字里就可以了。即:AppDatabasedb=Room.databaseBuilder(getApplicationContext(),AppDatabase.class,"database-name").build();将路由器放在数据库名称中。即:AppDatabasedb=Room.databaseBu

android - 添加 Room 后数据绑定(bind)似乎被破坏

添加后compile"android.arch.persistence.room:runtime:1.0.0-rc1"我所有的数据绑定(bind)类都被破坏了。有什么线索吗? 最佳答案 事实证明,javac将打印最多100个编译错误,在处理预处理器时,您通常需要最后一条错误消息,而不是第一条。将其放入您的顶级build.gradle文件中并变得快乐:allprojects{gradle.projectsEvaluated{tasks.withType(JavaCompile){options.compilerArgs感谢:https

对于库模块中定义的 POJO 的 @NonNull 注释构造函数参数,Android Room @Embedded 注释编译失败

我有一个POJO,我正在将其嵌入到房间实体中;请注意,POJO是在库模块中定义的;@EntitypublicclassPerson{@PrimaryKey@NonNullprivateStringuuid;@Embedded@NonNullprivateAddressaddress;publicPerson(@NonNullStringuuid,@NonNullAddressaddress){this.uuid=uuid;this.address=address;}@NonNullpublicStringgetUuid(){returnuuid;}@NonNullpublicAddre

java - 应用程序重启后 Room Empty Db

我正在尝试将Room用于我的新应用。但是每当我重新启动我的应用程序时,我都无法检索旧数据。看起来我的应用程序每次都在创建一个新的数据库实例,但我不确定为什么。这是我基于MVP模式的类(class)。编辑:我刚刚再次检查,发现自动生成的实体ID(MyModel)没有重置为1,但是当我检索数据时,我只在该session中插入了集合。道@DaopublicinterfaceMyDao{@Insert(onConflict=OnConflictStrategy.REPLACE)ListinsertModels(Listmodels);@Query("SELECT*FROMMyModel")Li

android - 具有继承接口(interface)的 Room DAO

我有一个DAO接口(interface),我有多个实现,我希望其中一个是Room实现(Kotlin):interfaceBaseDao{fungetAll():Single>funinsert(data:List)}和我的房间(RxRoom)界面:@DaointerfaceRxRoomBaseDao:BaseDao{@Query("SELECT*FROMsome_data")overridefungetAll():Single>@Insert(onConflict=OnConflictStrategy.REPLACE)overridefuninsert(data:List)}看起来Ro

android - 用于 Gson 的 POJO 是否可以重用于与 Room 一起使用的类

当使用Gson时,它会创建POJO来解析/序列化来自远程服务的json数据结果。它可能有一些Gson的注解publicclassUser{@SerializedName(“_id”)@ExposepublicStringid;@SerializedName(“_name”)@ExposepublicStringname;@SerializedName(“_lastName”)@ExposepublicStringlastName;@SerializedName(“_age”)@ExposepublicIntegerage;}但对于与Room一起使用的类,它可能有自己的注释:import

Android Room 使用详解

介绍Room是Google提供的一个ORM库。Room提供了三个主要的组件:@Database:@Database用来注解类,并且注解的类必须是继承自RoomDatabase的抽象类。该类主要作用是创建数据库和创建Daos(dataaccessobjects,数据访问对象)。@Entity:@Entity用来注解实体类,@Database通过entities属性引用被@Entity注解的类,并利用该类的所有字段作为表的列名来创建表。@Dao:@Dao用来注解一个接口或者抽象方法,该类的作用是提供访问数据库的方法。在使用@Database注解的类中必须定一个不带参数的方法,这个方法返回使用@Da

android - 具有新线程和数据绑定(bind)问题的 Room 持久库

我正在研究AndroidRoomPersistent库。我还在我的项目中实现了双向数据绑定(bind)。在该项目中,我通过填写表格并在行中显示所有用户并通过单击特定用户行来更新它们来插入用户。下面是我的UserDao类:@DaopublicinterfaceUserDao{@Query("SELECT*FROMuser")ListgetAllUsers();@InsertvoidinsertAll(User...users);@UpdatevoidupdateUser(User...users);@Query("SELECT*FROMuserWHEREuser_idIN(:userId

android - 没有 Room 的 NetworkBoundResource 帮助程序类

当我尝试为RoomDb和Retrofit实现NetworkBoundResource和Resource帮助程序类时,它工作得很好。但是,我需要使用RetrofitonlywithoutRoom实现来自RESTful的搜索结果。Resources类很好,我不需要更改它。我想要做的是尝试删除此类中的数据库源。publicabstractclassNetworkBoundResource{privatefinalAppExecutorsappExecutors;privatefinalMediatorLiveData>result=newMediatorLiveData();@MainThr

android - MenuItem.SHOW_AS_ACTION_IF_ROOM 是如何工作的?

开始使用ActionBar...对于MenuItem.SHOW_AS_ACTION_IF_ROOM文档说:ShowthisitemasabuttoninanActionBarifthesystemdecidesthereisroomforit.我的问题是,系统如何决定是否有空间,我可以影响/调整该决定吗?在我的例子中,我有一些菜单项适合显示为操作按钮——如果有足够的空间。在较小的屏幕上,它们占用足够的空间来使操作栏的标题省略。在这种情况下,我更希望他们进入Action溢出,而不是模糊标题。附言。我正在使用ActionBarSherlock并且没有检查nativeActionBar的行为