我想知道我是否应该使用资源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是将在textview中调用的字符串。
感谢您的帮助
答案 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));
答案 1 :(得分:0)
我建议将值存储在代码之外,例如XML或JSON(更快更容易使用)。我会选择JSON。非常容易将列表加载到数组或其他集合中,并且无论如何都可以使用它。
http://www.vogella.com/articles/AndroidJSON/article.html
然后您可以维护您的食谱,添加新食谱,维护食谱等,而无需触摸代码。只需替换XML或JSON(或您选择的任何内容)并重建您的应用程序。
Strings.xml适用于您可能希望本地化的UI和代码中的文本片段,以避免硬编码字符串。它并不是真正用于存储数据。