2011-06-01 55 views
1

我有幾個不同的Android項目使用一個庫,我已經創建了大多數的公共類。其中一個類是「commonSettingsAndFunctions」,我定義了幾個要使用的靜態字符串和方法。例如:如何在不同的Android項目中繼承全局設置類

public class commonSettingsAndFunctions { 
    public static String flurryCode = "MY_FLURRY_CODE"; 
    public static final int APP_VERSION = 2; 
    public static final String API_URL = "http://mydomain/api.jsp" 

    public static String getAPIUrl(Context context, String parameters) { 
    // code 
    } 
} 

但是,現在我想出了一個情況,我必須更改每個項目的一些設置。例如,亂碼和應用程​​序版本。 API_URL總是(迄今)相同。

實現此目的的最佳方式是什麼?我想到的一個選擇是將commonSettingsAndFunction設置爲抽象,創建一個「commonSettingsAndFunctionsReal extends commonSettingsAndFunctions」類,然後爲每個項目實現「Real」類?另一種可能性

我來自PHP的世界,在那裏我只希望有設置爲一類,併爲此在一些「全球包括文件」:

$common = new commonSettingsAndFunctions(); 
$common->flurryCode = "ABCD"; 
+0

擴展您的設置類聽起來像一個好主意,但使父抽象可能是沒有必要的。 – Jodes 2011-06-01 16:38:00

+0

擴展時,引用是什麼?所有其他庫類都引用「commonSettingsAndFunctions」類。 – 2011-06-01 16:39:26

+0

只要你不觸及基類commonSettingsAndFunctions,所有其他類將保持原樣。然而,第二個想法是,當你聲明所有東西都是靜態的時候,我想知道如果你擴展了類並在擴展類中改變了flurryCode,那麼行爲會是什麼樣子。 commonSettingsAndFunctions.flurryCode是否會返回修改後的版本? – 2011-06-01 17:20:54

回答

0

AppVersion的東西是在AndroidManifest.xml你可以從代碼中訪問它,所以你並不需要你自己的版本。對於Flurry API密鑰,我總是將它放在我的strings.xml中,以便在需要時加載它。

相關問題