2

我有一个ListPreference被 an 调用的Intent

package com.timeofcubeeliteDYLANFERRIS.cubetimerelite;

import android.os.Bundle;

public class MainPreferenceActivity extends PreferenceActivity {

    private OnPreferenceChangeListener onPreferenceChangeListener = new
        OnPreferenceChangeListener() {
        public boolean onPreferenceChange(Preference arg0, Object arg1){
                return true;
        }
    };

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.main_settings);
        Preference p;
        p.setOnPreferenceChangeListener(onPreferenceChangeListener);
    }
}

Preference p;是我所关心的。我还有其他东西可以找到它何时发生变化,但我不知道如何实际识别Preference. Preference位于xml.main_settings.xml。_ 它的关键是timerIncrement。谁能帮我解决这个问题?

摘要:
我不知道如何定义一个Preference位于 XML 文件中的位置。

4

3 回答 3

0

您只需使用findPreference(CharSequence key)以检索Preference.

于 2013-01-04T07:49:04.660 回答
0

当您使用 Preference Activity 进行扩展时,您可以直接findPreference(CharSequence key)从 xml 文件中获取您的偏好。

所以你可以将 Preference 定义为

Preference p = (Preference)findPreference(keyofpreferenceitemyouhavetaken);

如果它是 EditTextPreference 那么它将是:

EditTextPreference p = (EditTextPreference)findPreference(keyofpreferenceitemyouhavetaken);
于 2013-01-04T07:50:33.840 回答
0

使用以下两行可以解决您的问题。

PreferenceManager.getDefaultSharedPreferences("sPEICFY YOUR XML LOCATION HERE");
Prefs.registerOnSharedPreferenceChangeListener(this);
于 2013-01-04T07:51:45.470 回答