【问题标题】:Global declaration of variable in androidandroid中变量的全局声明
【发布时间】:2011-04-14 07:20:58
【问题描述】:

我是 android 开发新手,我正在通过 SAX 解析器解析一个 xml 文件并将解析后的数据存储到一个字符串中。现在我需要在另一个类中使用该字符串,所以我需要知道如何调用该解析器新班级。 提前致谢

【问题讨论】:

  • 请注意,全局数据不是一个好主意,除非它是常数。
  • 在不详细了解您的类层次结构的情况下,我想知道是什么阻止您使用基本的 getter 方法?

标签: java android android-2.2-froyo


【解决方案1】:

我总是创建一个包含我所有全局变量的类并将其命名为“Constants.java”

final public class Constants//final to prevent instantiation
{
    public static final String SOME_STRING = "0.04";
    public static final int SOME_NUMBER = 5;
    public static final float METERS_PER_MILE = 1609.344f;

    //private constructor to prevent instantiation/inheritance
    private Constants()
    {
    }
}

要在您的代码中使用其中之一,请务必导入该类并使用:

常量.SOME_NUMBER

【讨论】:

  • 你为什么不用一个接口来代替?
  • 因为“一个接口是一组相关的空体方法”
  • 尽管“接口定义也可以定义自动为 public static final 的属性”,但我认为接口的主要目的是表示具有空主体的相关方法的契约。
【解决方案2】:

您可以使用静态变量并可以在应用程序的任何位置访问它

public static int myVar = 1;

通过 ClassName.myVar 访问它

【讨论】:

    【解决方案3】:

    您可以使用意图来传递值。 此外,您可以使用 manifest.xml 来制作一个 gloable 变量。

    【讨论】:

      【解决方案4】:

      使用 android 应用程序扩展不是多进程安全的,如下所述: How to declare global variables in Android? 注意第一个响应。他定义了如何扩展应用程序本身,但指出 “这种方法没有提供持久化全局状态的简单方法。如果您的应用程序认为有必要,您应该使用某种存储;有关各种方法,请参阅 Android 文档。” 我还看到其他帖子指出,在进程之间需要稍微修改此方法,但我认为这是可能的。 如果我理解错了,请告诉我...

      【讨论】:

        【解决方案5】:

        你应该使用应用程序对象来获取一个全局变量,你可以在这里看到一个工作示例http://www.helloandroid.com/category/topics-covered/application-object

        应用程序类文档在此处说明 http://developer.android.com/reference/android/app/Application.html

        【讨论】:

        • 我不确定,但你总是可以使用同步关键字。
        猜你喜欢
        • 2014-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-30
        • 2011-06-30
        相关资源
        最近更新 更多