我想在我的应用的右上角添加一个菜单按钮,而不使用操作栏,就像在下面的屏幕截图中的Google Fit应用中一样.谁能帮我?

我正在构建一个Android应用程序,并希望以"干净架构"为基础,类似于以下作者的建议:
查看(片段)< - >演示者< - >交互者< - >存储库
在当前设计中,每个显示器有1个交互器(显示器可以包括多个片段,例如具有30个相同类型的片段的ViewPager)和每个片段1个呈现器.Presenter和Interactor没有框架依赖关系,可以轻松进行测试.
我主要关注的是Interactors/UseCases的实现及其与Presenters(MVP)或ViewModel(MVVM)的关系.
计划让Interactor首先获取显示所需的所有业务对象(BO).从数据层同步完成提取,并且每个接收到的BO都指向Presenter.这会导致延迟,直到视图中显示所有数据.
此外,它注册其感兴趣的BO的更新(与之前提取的相同),以通过演示者不断更新视图.
因此,我正在寻找如何在我的案例中设置Interactor的指南.上面提到的实现有一个任务,然后完成它,并且可以关闭Interactor后台线程.
在我的情况下,Interactor从数据层注册更新并等待处理它们,然后将数据发布到Presenter UI线程,因此只要有演示者监听就行.
这个功能是不同的,我正在寻找一个良好的做法,使其与"干净的架构"一起工作.
如何使用数据绑定将我的对象String字段值与xml文件中的另一个String值进行比较?是否可以在xml文件中执行此操作,还是应该使用@BindingAdapter注释在项目中的某处创建方法?以下是我到目前为止所尝试的内容并没有奏效.与String资源值进行比较而不是与硬编码字符串值进行比较也是很好的.
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/male"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="@{user.gender.equalsIgnoreCase("male")}"
android:text="@string/male"/>
<RadioButton
android:id="@+id/female"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="@{user.gender.equalsIgnoreCase("female")}"
android:text="@string/female"/>
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)
感谢帮助.
我正在尝试确保firebase中某个对象的某个字段是整数而不是小数.有一个方法isNumber()但它返回true wheter值是一个整数或小数.
我试图用正则表达式检查一个值,但由于某种原因它只适用于引号内的值,即字符串.
这是我的规则的样子:
"$item_id":{
"created":{
".validate":"newData.val().matches(/^[0-9]+$/)"
}
}
Run Code Online (Sandbox Code Playgroud)
所以当我把一个像字符串值的对象放在这样的{"created":"123456789"}验证工作正常.但是当我把一个带有数值{"created":123456789}验证的对象失败时.
有没有办法做到这一点?
validation firebase firebase-security firebase-realtime-database
android ×3
android-menu ×1
architecture ×1
data-binding ×1
firebase ×1
mvp ×1
mvvm ×1
validation ×1