2

String Array に追加したい約 70 個の文字列があります。次に、String 配列を TextView に出力します。

私はいくつかの宿題をしましたが、実際に文字列を ListArray に追加したいと思います。

文字列は string.xml ファイルにあります。

TextView tvHerb = (TextView) findViewById(R.id.tvHerb);

    ArrayList<String> herbList = new ArrayList<String>();
    herbList.add(R.string.angelica, null);
    herbList.add(R.string.anise_seed, null);

    tvHerb.setText(herbList.toString());

レイアウトがエミュレーターに表示されるとすぐにランタイム エラーが発生します。

迷っています!!!私はAndroidプログラミングも初めてなので、何か助けていただければ幸いです。

4

3 に答える 3

1

context.getString(id)文字列リソースを取得するために使用する必要があります。

また、 の 2 引数バージョンを使用している理由はあります.addか?

あなたはおそらくしたいですherbList.add( context.getString( R.string.angelica ) );

于 2012-10-13T18:14:12.503 に答える
0

string.xmlファイルにidを持つ各文字列を含める代わりに。string.xmlで文字列配列を宣言できます

   `<resources>
   <string-array name="sample">
   <item>YourValue1</item>
   <item>YourValue2</item>
    .....
   <item>YourValue70</item>
   </string-array>
   </resources>`

その後、あなたの活動で

   `String[] sample = getResources().getStringArray(R.array.sample);
   ArrayList<String> arrayList = new ArrayList<String>(sample.length);
   arrayList = Arrays.asList(sample);`
于 2012-10-13T18:37:45.813 に答える
0

まず、属性の数に関するagrecoの回答に同意します。

ただし、文字列リソースからの文字列のみを配列リストに追加する場合は、strings.xmlファイルで文字列の配列を直接定義する方がよいと思います。

ただし、問題はtoStringをArrayListに適用することに起因すると思います。toStringはジェネリックメソッドであり、配列での動作がわかりません。toStringは必ずしも正確なニーズに適合するとは限りませんが、ほとんどの場合、適合しません。

私はあなたが次のようなことをしたほうがいいと思います:

String stringToInsert =herbList.get(0);

    for (int i=1;i<herbList.size();i++)
    {
        stringToInsert+="ANY_SEPARATOR_YOU_WANT" + herbList.get(i);
    }

    tvHerb.setText(stringToInsert);
于 2012-10-13T18:38:13.520 に答える