2015-01-02 58 views
0

如何從一個類文件,並無法加載您的字符串資源編程的活動:Android的加載字符串資源編程

這是我的strings.xml

<!-- FactBook Resource --> 
    <string-array name="facts"> 
     <item>facts 1</item> 
     <item>facts 2</item> 
... 
    </string-array> 

這裏我的類文件

public class FactBook { 

    public String[] mFacts; 

    mFacts = getResources().getStringArray(R.array.facts); 

    public String getFact() { 

     String fact = ""; 

     // Randomly select a fact 
     Random randomGenerator = new Random(); 
     int randomNumber = randomGenerator.nextInt(mFacts.length); 

     fact = mFacts[randomNumber]; 

     return fact; 
    } 
} 

我得到一個錯誤。 - 無效的方法聲明,需要返回類型。

+2

'從類加載你的字符串資源臨語法file'得到調用'getResources()'如果你需要有效電流分量'Context' 。所以使用'FactBook'類構造函數在對象創建期間獲取上下文,然後將String數組作爲'context.getResources()。getStringArray(R.array.facts)' –

+1

您不能從外部訪問'getResources()'。如果你只想使用'Context'。 –

回答

2

您需要創建Constructor並通過Context作爲第一個參數。現在

public class FactBook { 

public String[] mFacts; 

Context context; 

public FactBook(Context con){ 
context=con; 
mFacts =con.getResources().getStringArray(R.array.facts); 
} 

public String getFact() { 

    String fact = ""; 

    // Randomly select a fact 
    Random randomGenerator = new Random(); 
    int randomNumber = randomGenerator.nextInt(mFacts.length); 

    fact = mFacts[randomNumber]; 

    return fact; 
} 
} 

,你叫這個Facebook類像

FactBook fb=new Facebook(your_Activity.this); 
String str=fb.getFact(); 
+0

如果有用,請接受答案。 –