2012-12-12 28 views
5

我正在写一个Android应用程序,我有一大堆我需要在特定活动中访问的变量(基本上,这是一个用于小型游戏的“数据模型”)。目前,我将它们全部存储在一个巨大的“容器”类中,以便我可以轻松地引用它们而不会污染我的活动课程。例如:在较小的规模上是否有类似Android的资源系统?

public class Model 
{ 
    private int a; 
    private String b; 
    private float c; 

    ... 

    public int getA() 
    { 
     return a; 
    } 

    public void setA(int a) 
    { 
     this.a = a; 
    } 

    public String getB() 
    { 
     return b; 
    } 

    public void setB(String b) 
    { 
     this.b = b; 
    } 

    public float getC() 
    { 
     return c; 
    } 

    public void setC(float c) 
    { 
     this.c = c; 
    } 

    ... 
} 

正如你所看到的,它们是不同类型的,并且都有吸气和吸气器。但是像这样存储它们变得很麻烦。我也想遍历变量组,但是使用这个扁平的getter/setter格式我不能那么做。

我知道Android的资源系统,但它似乎不适合这样做,因为这些变量并不是应用程序范围内的/全局的。它们只存在于此特定活动的生命中,并且每次活动开始时都会以编程方式生成。

我正在考虑将它们全部放入Map<String, Object>结构中,我可以通过String键引用每个变量。这将消除需要有许多getter和setter的容器类,因为我可以在地图上调用putget。但是,无论何时我想从地图获取价值,我都必须投射到预期的类型。我不喜欢那种声音。

任何人都有更好的解决方案吗?是否有类似于Android的资源系统,可以在更小,更临时的规模上使用?

+0

如果使类变量静态的,你可以随处访问的变量。不知道这是你的意思。 – Tooroop

回答

0

我不确定为什么,如果这些是为了模拟Activity的状态,那么您不仅仅为每个模型对象定义了实际的类。这将是我的建议。你正在采取一种非常类似C的程序方法,只将它们一起倾倒在一个班级中。另外,由于你的代码不会显示静态getter和setter,你必须以某种方式创建和访问容器类,不是吗?基于这个小片段,没有更多的上下文,很难给你一个更好的答案。

+0

为每个模型对象定义类?我不确定你的意思是... –

0

您可以为每个活动定义一个自定义xml资源文件。这些文件存储在与/ src文件夹相同级别的/ xml文件夹中。使用Resources类加载它们。

还是先看看这个问题:Dynamic Resource Loading Android

相关问题