问题描述
我正在努力进入清洁代码模式,遇到了以下问题,但不幸的是我没有找到答案:
从viewmodel访问android资源(例如字符串,颜色等)的最佳解决方案是什么
也许我只是错过了一些东西。
解决方法
从中访问android资源的最佳解决方案是什么 ViewModel,如字符串,颜色
我不会这样做。我将emit
的资源int
表示到视图(活动/片段/对话框)。我可以访问Resources
对象,使用它获取真实资源
您可以在ViewModel中传递应用程序上下文,对字符串和尺寸afaik效果很好。
如果活动/片段使用自定义主题(不是主应用程序主题),请使用这种颜色和可绘制对象警告,如果是活动/片段,则使用活动/片段或应用程序中的getColor()上下文可能会有所不同(如果您使用尺寸间接指令(未经测试),可能也会成为问题。)
Blackbelt approach很好,但是如果您必须在资源上做一些工作(例如将Spans添加到字符串),并且想要隔离VM对生成的Spannable进行单元测试,则会受到限制。