0

ハードコードされたArrayListを使用するのではなく、リソースXMLファイルを使用してすべての可能なレシピを保存する必要があるかどうか疑問に思っています。問題は、メソッドiを使用してリソースファイルから呼び出す方法がわからないことです。持ってる...

これが私が欲しいものの縮小版です:

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>

このリストはかなり長くなるので、私がこれにかなり慣れていないことを念頭に置いて、ストレージに関する他の提案に感謝します。

レシピ番号intは、テキストビューに呼び出される文字列です。

助けてくれてありがとう

4

2 に答える 2

0

コードの外部、たとえばXMLやJSONに値を保存することをお勧めします(より速く、より簡単に操作できます)。JSONを使用します。リストを配列やその他のコレクションにロードして、必要に応じて操作するのは非常に簡単です。

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

その後、コードに触れることなく、レシピを維持したり、新しいレシピを追加したり、維持したりすることができます。XMLまたはJSON(または選択したもの)を置き換えて、アプリを再構築するだけです。

Strings.xmlは、ローカライズして文字列のハードコーディングを回避する可能性のあるUIおよびコード内のテキストを対象としています。実際にはデータの保存を目的としたものではありません。

于 2012-09-20T17:23:33.777 に答える
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 に答える