我检查了建议的解决方案,找不到答案。如果答案在那里,那么我很抱歉再次发布。
我正在使用wcf休息服务。
在我的测试活动中,我做了;
private final static String SERVICE_URI = "http://10.0.2.2/Service1.svc";
这将最终用于各种活动。
所以我想做的是:private final static String SERVICE_URI = [CONSTANT]
因此,如果我需要将服务重新指向其他地方,单个代码更新将导致依赖活动指向正确的位置,从而允许它们工作,而不必更新每个活动。
那么:我在Android中如何/在哪里创建这样的常量,我将如何引用它?
非常感谢任何帮助。
答案 0 :(得分:5)
String Resources的替代方法,您可以通过创建Constants类并将常量值放在那里来实现。此方法并非完全针对Android,而是Java社区经常使用的实践。
public class Constants {
public final static String SERVICE_URI = "http://10.0.2.2/Service1.svc";
}
并将其作为Constants.SERVICE_URI引用到其他Activity / classes中。如果您使用此方法,即使上下文或应用程序不可用,您也可以在任何地方使用它。
答案 1 :(得分:2)
根据您的描述,您需要查看String Resources。
您可以随时从Android应用中的任何组件访问它们,并且它们在构建时有效“恒定”。
编辑只是为了扩展资源的使用......
...看看Dororo的回答。使用“资源ID”访问所有资源(字符串,图像/可绘制内容甚至UI元素,如按钮等)。任何resId,即R.blah
都是表示资源的int。因此,需要以正确的方式获取它。
对于UI元素,我们使用findViewById(...)
和字符串,我们使用getString(...)
,如Dororo的例子。
我的观点是字符串在构建时是不变的,所以没有必要将任何变量声明为final static
,它将字符串资源表示为任何类的一部分,例如Activity
,因为你可以使用Context.getString(...)
方法访问任何字符串,如链接所示。
答案 2 :(得分:1)
您想何时更改此字符串?
如果要在不发布程序更新的情况下动态更改它,您可能希望全局设置它,然后创建编辑它的函数,只要您想更改地址就可以调用它。
如果您很高兴在程序更新时只更改它(并非所有用户都必须记住),那么您将需要将其设置为字符串资源,或者只是将其全局设置并打上{{ 1}}。要从String资源访问字符串,请使用:
final
要创建字符串资源,请打开/res/values/strings.xml并使用以下命令创建新字符串:
context.getString(R.string.resource_name)
application.getString(R.string.resource_name)