0

我想知道是否应该使用资源 XML 文件来为我存储所有可能的食谱,而不是使用硬编码的 ArrayList,问题是我不知道如何使用方法从资源文件中调用我有...

这是我想要的精简版:

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>

这个列表会很长,所以我很感激任何其他关于存储的建议,请记住我对此很陌生。

recipeNumber int 是文本视图中将调用的字符串。

谢谢你的帮助

4

2 回答 2

0

要在代码中获取字符串资源,请使用 getResources()。

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

要获取未知的资源标识符,但已知的资源名称,可以使用以下方法。

int identifier = getResources().getIdentifier("" + recipeNumber, "string", "com.your.package.name");
rowTextView.setText(getResources().getString(identifier));
于 2012-09-20T17:12:08.580 回答
0

我建议将值存储在代码之外,例如以 XML 或 JSON 格式(使用起来更快、更容易)。我会选择 JSON。将列表加载到数组或其他集合中真的很容易,并且可以随心所欲地使用它。

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

然后,您可以维护您的食谱、添加新食谱、维护它等,而无需接触代码。只需替换 XML 或 JSON(或您选择的任何内容)并重新构建您的应用程序。

Strings.xml 用于您的 UI 中的文本片段和您可能想要本地化的代码并避免硬编码字符串。它并不是真正用于存储数据。

于 2012-09-20T17:23:33.777 回答