2017-09-23 80 views
0

我想使用字符串资源文件(strings.xml)填充微调数组的值,但不知道为什么,微调控制器出现没有值。Android:使用字符串资源文件来填充微调器

Java代码:

String[] measures = new String[]{}; 
Resources res = getResources(); 
Spinner sp1 = (Spinner) findViewById(R.id.spinner); 

measures = res.getStringArray(R.array.measures); 
List<String> list_measures = new ArrayList<String>(Arrays.asList(measures)); 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list_measures); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
sp1.setAdapter(adapter); 

的strings.xml

<resources> 
    <string name="days">Days(d)</string> 
    <string name="hours">Hours(h)</string> 
    <string name="minutes">Minutes(min)</string> 
    <string name="seconds">Seconds(s)</string> 
</resources> 

arrays.xml

<resources> 
    <string-array name="measures"> 
     <item>@string/days</item> 
     <item>@string/minutes</item> 
     <item>@string/seconds</item> 
     <item>@string/hours</item> 
    </string-array> 
</resources> 

我看不出哪里是我的微调这个问题似乎没有价值。

+0

** 1 ** - 我会跳过ArrayList。 ** 2 ** - 为什么你的arrays.xml指向strings.xml?你可以直接在arrays.xml中写入值。并拥有本地化的arrays.xml文件。 –

回答

2

我在我的大型工作项目中有一个微调,它工作得很好。
下面是从我的代码直接粘贴的代码。

 final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(
       this,android.R.layout.simple_spinner_dropdown_item, 
       getResources().getStringArray(R.array.measures)); 
     searchSpinner.setAdapter(arrayAdapter); 

希望它有效。
另外,您应该直接将值存储在数组中,而不是在那里使用字符串元素。