0

ListPreference に res/anim フォルダーの内容を入力しようとしていますが、空白のままになるという問題があります。入力する文字列の静的配列があり、それは機能しますが、動的にする必要があります。 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>

ご協力いただきありがとうございます

4

1 に答える 1

0

xml で宣言されているものとは異なるプリファレンスにリスト データを設定しています。現在、新しく作成された に対してデータを設定していますListPreference:

ListPreference prefListAnim = new ListPreference(this);

ただし、xml で宣言された (空の) ものを表示しています。どちらか一方を行う必要があります。たとえば、おそらく最も簡単な解決策は、上記を変更して、代わりに xml から設定を膨らませることです。

ListPreference prefListAnim = (ListPreference) findPreference("prefList_animations");
于 2012-07-24T19:33:32.040 に答える