2012-09-20 41 views
0

我想知道如果我應該使用資源XML文件來存儲所有可能的食譜,而不是使用硬編碼的ArrayList,問題是我不'知道如何從一個資源文件中使用我有方法調用...在Android XML資源文件中存儲字符串並引用它們

這裏是我想要什麼砍下版本:

int recipeNumber = b.getInt("RECIPE"); //This is taken from another activity 

    final TextView rowTextView = new TextView(this); //Create a textview 

    rowTextView.setText(R.string.recipeNumber); //This is what i am struggling with 

    howToLinearLayout.addView(rowTextView); //Add textview to linearlayout 

我不知道要放什麼東西在部分引用我的資源文件。我知道我需要: rowTextView.setText(R,但我不知道會出現什麼之後

林將字符串存儲,這將是例如:。

<string name="1">One part Vodka, One part Coke</string> 
<string name="2">One part Vodka, One part Lemonade</string> 

這份名單將是相當長所以ID欣賞上存儲任何其他建議,裸記住我很新了這一點。

的配方號int是什麼字符串到TextView中被調用。

感謝您的幫助

回答

0

我建議將值存儲在代碼之外,例如以XML或JSON格式(更快,更容易處理)。我會用JSON去。真的很容易將列表加載到數組或其他集合中,並且無論如何都可以使用它。

http://www.vogella.com/articles/AndroidJSON/article.html

然後,您可以維護你的食譜,添加新的,保持它等,而無需觸摸的代碼。只需替換XML或JSON(或任何您選擇的)並重建您的應用程序。

Strings.xml適用於您的用戶界面和代碼中的文本片段,您可能希望本地化和避免硬編碼字符串。它並非真正用於存儲數據。

+0

好的,謝謝我會着眼於此 –

0

要獲取代碼中的字符串資源,請使用getResources()。

rowTextView.setText(getResources().getString(R.string.recipeNumber)); 

爲了得到一個未知的資源標識符,但已知的資源名稱,可以使用下面的方法。

int identifier = getResources().getIdentifier("" + recipeNumber, "string", "com.your.package.name"); 
rowTextView.setText(getResources().getString(identifier)); 
+0

它仍然不能識別我的代碼中的recipeNumber部分 - 它是一個變量,所以有什麼辦法可以引用它? –

+0

您可以獲取您知道名稱的資源的標識符。請參閱編輯。 – swhitewvu24

相關問題