41

以下は、文字列配列アイテムを取得するために作成したコードです。

String[] menuArray;

@Override
public void onCreate(Bundle savedInstanceState) 
{       
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ScrollView sv = new ScrollView(this);
    LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);
    sv.addView(ll);

 // Create an ArrayAdapter that will contain all list items
    ArrayAdapter<String> adapter;

    menuArray = getResources().getStringArray(R.array.menu); 


    for(int i = 0; i < menuArray.length; i++) 
    {
        Button b = new Button(this);
        b.setText(menuArray[i]);
        ll.addView(b);
    }

    this.setContentView(sv);
 }

これはstrings.xmlファイルです:

 <string-array name="menu">
        <item>1</item>
        <item>2</item>
        <item>3</item>
        </string-array>

ただし、コンパイル時にこの問題が発生するR.array.menu:ADT 14以降、リソースフィールドをスイッチケースとして使用することはできません。この修正を呼び出して、より多くの情報を取得します。

4

2 に答える 2

78

リソースから文字列配列を取得する方法:

array.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="my_string_array">
        <item>one</item>
        <item>two</item>
        <item>three</item>
    </string-array>

</resources>

コード

String[] stringArray = getResources().getStringArray(R.array.my_string_array);

(OPはすでに質問に回答していますが、質問のタイトルに基づいて、他の人がこの回答を探しにここに来る可能性があります。)

于 2017-08-28T07:24:39.970 に答える
8
for(int i = 0;i<menuArray.length; i++) 
{
    Button b = new Button(this);
    b.setText(menuArray[i]);
    ll.addView(b);
}

以下のステートメントを削除します

 try {
        x = count();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

そして、すべてのレイアウトにレイアウトの高さと幅を与えるようにしてください。

于 2012-05-10T12:28:32.570 に答える