字符串数组超出范围异常

时间:2015-02-25 17:04:19

标签: android arrays string

我的字符串数组有大约40个项目,所以如何设置字符串[]的长度? 我的代码:

Context context;
String[] mTitle;
String[] mSubTitle;
LayoutInflater inflater;

public MenuListAdapter(Context context, String[] title, String[] subtitle)
        {
    this.context = context;
    this.mTitle = title;
    this.mSubTitle = subtitle;
}

@Override
public int getCount() {
    return mTitle.length;
}

@Override
public Object getItem(int position) {
    return mTitle[position];
}

@Override
public long getItemId(int position) {
    return position;
}

@SuppressLint("ViewHolder") public View getView(int position, View convertView, ViewGroup parent) {
    // Declare Variables
    TextView txtTitle;
    TextView txtSubTitle;

    inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View itemView = inflater.inflate(R.layout.drawer_list_item, parent,
            false);

    // Locate the TextViews in drawer_list_item.xml
    txtTitle = (TextView) itemView.findViewById(R.id.title);
    txtSubTitle = (TextView) itemView.findViewById(R.id.subtitle);

    // Set the results into TextViews
    String[] title = context.getResources().getStringArray(R.array.title);
    String[] subtitle = context.getResources().getStringArray(R.array.subtitle);
    txtTitle.setText(title[position]);
    txtSubTitle.setText(subtitle[position]);

    return itemView;
}

}

我的字符串数组:

<string-array name="title">
<item>10</item>
<item>11</item>
<item>11A</item>
<item>11G</item>
<item>12</item>
<item>12A</item>
<item>12Y</item>
<item>13</item>
<item>13A</item>
<item>13G</item>
<item>13Y</item>
<item>14</item>
<item>14G</item>
<item>15</item>
<item>15A</item>
<item>15Y</item>
<item>16</item>
<item>16A</item>
<item>17</item>
<item>20</item>
<item>22</item>
<item>23</item>
<item>23E</item>
<item>24</item>
<item>25</item>
<item>26</item>
<item>26A</item>
<item>26G</item>
<item>27</item>
<item>29</item>
<item>31</item>
<item>31E</item>
<item>32</item>
<item>33</item>
<item>34</item>
<item>35</item>
<item>36</item>
<item>37</item>
<item>38</item>
<item>42</item>
<item>43</item>
<item>44</item>
<item>M26</item>
</string-array>

我应该在哪里声明数组的长度?确切的错误是:

java.lang.ArrayIndexOutOfBoundsException:length = 4;索引= 4

我不想使用字符串列表,因为我不知道如何。请帮帮我。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您的数组titlesubtitle的长度不同。检查你的数据。

您无法设置数组长度,但可以从属性中获取它:

int number_of_items = title.length;