关于Spinner的一个容易出现的错误:
首先,我在res/value/array.xml里定义的一个数组
<string-array>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
<item>19</item>
<item>20</item>
<item>21</item>
<item>22</item>
<item>23</item>
<item>24</item>
<item>25</item>
<item>26</item>
</string-array>
然后构造了数组适配器:
adapterzhou = ArrayAdapter.createFromResource(this,R.array.weekNum,android.R.layout.simple_spinner_item);
spinner4.setAdapter(adapterzhou);
spinner4.setSelection(0);
通过对Spinner操作,然后利用方法取得现在选中的项,把它存起来:
int newweek1 =Integer.parseInt(spinner4.getSelectedItem().toString());
等到要用时把它取出来:
然后通过:spinner5.setSelection(newweek1)绑定,
这时,问题就出现了。
例如:我在上面保存时选中的项是7,然后把它取出来绑定时显示出来的是8。刚遇到这个问题时我以为是存取出了错误,检查了很久。检查不出来只能百度,哎,居然有setSelection(0)
那么,恍然大悟,我们的Spinner绑定时数组下标是从0开始的,那我存出来的数必须减去1才能显示正确