Android(常量)

时间:2011-08-24 22:55:21

标签: java android

我检查了建议的解决方案,找不到答案。如果答案在那里,那么我很抱歉再次发布。

我正在使用wcf休息服务。

在我的测试活动中,我做了;

private final static String SERVICE_URI = "http://10.0.2.2/Service1.svc";

这将最终用于各种活动。

所以我想做的是:private final static String SERVICE_URI = [CONSTANT]

因此,如果我需要将服务重新指向其他地方,单个代码更新将导致依赖活动指向正确的位置,从而允许它们工作,而不必更新每个活动。

那么:我在Android中如何/在哪里创建这样的常量,我将如何引用它?

非常感谢任何帮助。

3 个答案:

答案 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)