从SharedPreferences获取android:entries和android:entryValue

时间:2013-08-12 19:35:06

标签: android sharedpreferences

我的xml中有2个数组列表:

<string-array name="USStates">
        <item>View Latest Updates&#8230;</item>
        <item>Alabama</item>
        <item>Alaska</item>
        <item>Arizona</item>
        <item>Arkansas</item>
        <item>California</item>
        <item>Colorado</item>
        <item>Connecticut</item>
        <item>Delaware</item>
        <item>District of Columbia</item>
        <item>Florida</item>
        <item>Georgia</item>
        <item>Hawaii</item>
        <item>Idaho</item>
        <item>Illinois</item>
        <item>Indiana</item>
        <item>Iowa</item>
        <item>Kansas</item>
        <item>Kentucky</item>
        <item>Louisiana</item>
        <item>Maine</item>
        <item>Maryland</item>
        <item>Massachusetts</item>
        <item>Michigan</item>
        <item>Minnesota</item>
        <item>Mississippi</item>
        <item>Missouri</item>
        <item>Montana</item>
        <item>Nebraska</item>
        <item>Nevada</item>
        <item>New Hampshire</item>
        <item>New Jersey</item>
        <item>New Mexico</item>
        <item>New York</item>
        <item>North Carolina</item>
        <item>North Dakota</item>
        <item>Ohio</item>
        <item>Oklahoma</item>
        <item>Oregon</item>
        <item>Pennsylvania</item>
        <item>Rhode Island</item>
        <item>South Carolina</item>
        <item>South Dakota</item>
        <item>Tennessee</item>
        <item>Texas</item>
        <item>Utah</item>
        <item>Vermont</item>
        <item>Virginia</item>
        <item>Washington</item>
        <item>West Virginia</item>
        <item>Wisconsin</item>
        <item>Wyoming</item>
    </string-array>
    <string-array name="USStateNumber">
        <item>0</item>
        <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>
        <item>27</item>
        <item>28</item>
        <item>29</item>
        <item>30</item>
        <item>31</item>
        <item>32</item>
        <item>33</item>
        <item>34</item>
        <item>35</item>
        <item>36</item>
        <item>37</item>
        <item>38</item>
        <item>39</item>
        <item>41</item>
        <item>42</item>
        <item>43</item>
        <item>44</item>
        <item>45</item>
        <item>46</item>
        <item>47</item>
        <item>48</item>
        <item>49</item>
        <item>50</item>
        <item>51</item>
        <item>52</item>
    </string-array>

当有人选择默认状态时,我想同时返回数字和“状态”。我目前得到#,但不是州。相反,我得到的键是default_state。我想要android:条目。

 <ListPreference 
            android:key="default_state"
            android:title="Default State"
            android:summary="Please choose your state."
            android:defaultValue="0" 
            android:entries="@array/USStates"
            android:entryValues="@array/USStateNumber"
        />    

我正在使用这样的数组来获取信息:

for(Map.Entry<String,?> entry : keys.entrySet()){
                    Log.d("map values",entry.getKey() + ": " + 
                                           entry.getValue().toString());

                    int pref = Integer.parseInt(entry.getValue().toString());

                    aq.id(R.id.tvstate).text(entry.toString());

         }

如何从USStates获得结果?我在代码提示中没有看到任何内容,而且在SO中没有任何内容。

编辑:

结束这样做:

//get the states
String[] states = getResources().getStringArray(R.array.USStates);

 StringBuilder builder = new StringBuilder();

 builder.append(sharedPrefs.getString("default_state", "1"));

 int pref = Integer.parseInt(builder.toString());
 //return the state at pref number.
 String element = states[pref];
 //show state
 aq.id(R.id.tvstate).text(element);

不确定是否有更好的方法?

0 个答案:

没有答案