1

私の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:entries が欲しいです。

 <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);

より良い方法があるかどうかわかりませんか?

4

0 に答える 0