我已經發布了以下代碼的更大塊。你可以看到,最初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);
好的,太棒了!感謝您花時間回答這個問題 - 我真的很感激!我已經創建了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
@ user356812 - 'getString()'是一個實例方法,因此您不能在靜態初始化程序中使用它。 – CommonsWare 2010-06-02 21:37:04
我還沒有找到解決方案 - 任何人都可以提出一種創建可以在靜態初始化程序中使用的getString實例的方法嗎?我仍然在網上閱讀很多東西,但如果你有一個很好的解釋,你可以節省很多時間;) – user356812 2010-06-02 22:36:02