是否有类似于Android资源系统的更小规模?

时间:2012-12-12 13:28:38

标签: java android android-activity resources android-resources

我正在编写一个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的资源系统可以在更小,更临时的规模上使用?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

或者看一下这个问题:Dynamic Resource Loading Android