2010-06-02 99 views
0

我已經發布了以下代碼的更大塊。你可以看到,最初QUOTE是程序編碼的。我試圖學習如何使用聲明式設計,所以我想通過使用資源來做同樣的事情。似乎我需要通過@ R.id標記訪問string.xml,並用該字符串值標識QUOTE。但我不知道如何談判。有小費嗎?謝謝!令牌上的語法錯誤「QUOTE」,此令牌之後預期爲VariableDeclaratorId

公共類圓延伸活動{ @Override 公共無效的onCreate(捆綁savedInstanceState){ super.onCreate(savedInstanceState); setContentView(new GraphicsView(this)); }

靜態公共類GraphicsView擴展視圖{

//private static final String QUOTE = "Happy Birthday to David."; 

    private final String QUOTE = getString(R.string.quote); 

..... @覆蓋 保護無效的onDraw(帆布油畫){// 繪圖命令去這裏

 canvas.drawPath(circle, cPaint); 
    canvas.drawTextOnPath(QUOTE, circle, 0, 20, tPaint); 

回答

0

Basically I want to have the same text but as a resource in strings.xml

您至少要注意一個名爲res/values/strings.xml的文件,其中包含以下文件:

<resources> 
    <string name="quote">Happy Birthday to David.</string> 
</resources> 

然後,您使用getString(R.string.quote)來獲取Java代碼中的字符串值。請注意,您創建項目時可能已經創建了一個res/values/strings.xml文件,因此只需將上面顯示的<string>元素與該文件中的其他此類元素一起添加即可。

Can someone please educate me a little and recommend a good resource for these type of questions? I'm using HelloAndroid at the moment and I also have "Beginning Android".

字符串資源覆蓋在175-180的頁開始的Android。該部分的樣本項目的當前版本can be found here

+0

好的,太棒了!感謝您花時間回答這個問題 - 我真的很感激!我已經創建了string.xml文件,但使用getString(R.string.quote)是我遇到問題的地方: 我收到此錯誤: 無法對非靜態方法getString(int)進行靜態引用類型上下文 當我使用此代碼:private static final String QUOTE = getString(R.string.quote); 這就是爲什麼我試圖粘貼O.P. 的方式所以我想我正在實例化一個錯誤類型的變量。 我還沒有閱讀你推薦的網頁,所以這就是我現在要做的。 再次感謝! Dave。 – user356812 2010-06-02 21:30:20

+0

@ user356812 - 'getString()'是一個實例方法,因此您不能在靜態初始化程序中使用它。 – CommonsWare 2010-06-02 21:37:04

+0

我還沒有找到解決方案 - 任何人都可以提出一種創建可以在靜態初始化程序中使用的getString實例的方法嗎?我仍然在網上閱讀很多東西,但如果你有一個很好的解釋,你可以節省很多時間;) – user356812 2010-06-02 22:36:02

相關問題