2012-12-12 29 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

相關問題