1

我只是不知道如何完成以下工作;

我想显示“人类可读形式”(refresh_interval_entries),例如在 a 中Log.d(),对应于在 中选择的内容refresh_interval_values

  • 我在中定义了两个数组values\arrays.xml

    <string-array name="refresh_interval_entries" translatable="false">
        <item>1 minute</item>
        <item>2 minutes</item>
        <item>3 minutes</item>
    </string-array>
    <string-array name="refresh_interval_values" translatable="false">
       <item>60</item>
       <item>120</item>
       <item>180</item>
    </string-array>
    
  • 我将选定的值保存refresh_interval_values在 ListPreference 中。

首先,我正在考虑做类似的事情;

String[] mEntries = getResources().getStringArray(R.array.refresh_interval_entries);

但我不认为这会起作用,因为我无法获得正确的索引mEntries[index],因为我无法使用refresh_interval_values.

不想在扩展的 Activity 中显示它PreferenceActivity,只是在普通 Activity 中显示。任何想法如何做到这一点?

4

2 回答 2

2

如何在您的应用程序开始时HashMap,从两者中做出选择arrays

HashMap<String, String> dictionary = new HashMap<String, String>(); 
String[] mEntries = getResources().getStringArray(R.array.refresh_interval_entries);
String[] mValues = getResources().getStringArray(R.array.refresh_interval_values);

for (int i = 0; i < mEntries.length; i++) {
    dictionary.put(mValues[i], mEntries[i]);
}

并像这样使用它:

String entry = dictionary.get("60");
于 2013-02-25T18:44:34.523 回答
1

做这样的事情:

   {
        ... 
        String[] mEntries = getResources().getStringArray(R.array.refresh_interval_entries);
        String[] mValues = getResources().getStringArray(R.array.refresh_interval_values);
        Log.d(TAG, "120=" + getEntryFromValue("120", mEntries, mValues));
    }

private String getEntryFromValue(String value, String[] mEntries, String[] mValues) {
    for (int i=0; i < mValues.length; i++) {
        if (value.equals(mValues[i])) {
            // check mEntries length
            return mEntries[i];
        }
    }
    return "NOT FOUND";
}
于 2013-02-25T18:25:27.720 回答