我正在尝试使用res / anim文件夹的内容填充ListPreference但是我遇到了一个问题,它一直是空白的,我有一个静态的字符串数组来填充它,但是我需要它动态,我可以在logcat中打印出文本,它只是没有填充列表你能帮帮我吗?
PreferenceActivityMenu.java
CharSequence[] entries = null;
CharSequence[] entryValues = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
SharedPreferences prefs=getPreferences(Context.MODE_PRIVATE);
ListPreference prefListAnim = new ListPreference(this);
listAnim();
prefListAnim.setEntries(entries);
prefListAnim.setEntryValues(entryValues);
}
@Override
public boolean onPreferenceClick(Preference preference) {
// TODO Auto-generated method stub
return false;
}
public void listAnim() {
Field[] fields = R.anim.class.getFields();
entries = new String[fields.length];
entryValues = new String[fields.length];
for (int count = 0; count < fields.length; count++) {
Log.i("Raw Asset: ", fields[count].getName());
entries[count] = fields[count].getName();
entryValues[count] = Integer.toString(count);
}
}
和preference.xml
<PreferenceCategory android:title="Animation Transitions" >
<ListPreference
android:dialogTitle="@string/prefsList_dialogTitle"
android:key="prefList_animations"
android:summary="@string/prefsList_summary"
android:title="@string/prefsList_title" >
</ListPreference>
</PreferenceCategory>
感谢您的帮助
答案 0 :(得分:0)
您将列表数据设置为与xml中声明的首选项不同的首选项。目前,您正在针对新创建的ListPreference
:
ListPreference prefListAnim = new ListPreference(this);
但是,您将显示在xml中声明的(空)。你应该做其中一个。例如,最简单的解决方案可能是改变上面来改变xml的偏好:
ListPreference prefListAnim = (ListPreference) findPreference("prefList_animations");