Android:SettingsActivity,确认密码?

时间:2014-08-03 22:12:52

标签: android passwords settings

我有一个settingsactivity,我有一个带密码字段的edittext。 我只包含4个数字和数字。

如果用户点击此内容,我是否可以在输入新密码之前强制用户确认旧密码?

的活动:

addPreferencesFromResource( R.xml.pref_general );

RES / XML / pref_general.xml

<PreferenceCategory android:title="@string/settings_general">
    <EditTextPreference
            android:title="@string/settings_password"
            android:key="example_password"
            android:summary="****"
            android:textColor="@color/textColor"
            android:textColorHint="@color/hintColor"
            android:inputType="number"
            android:maxLength="4"
            />

</PreferenceCategory>

如何找到这些项目以便我可以将自己的onClickListener放在它们上面?

编辑:我发现了这种方法,目前正试图解决这个问题..

private static Preference.OnPreferenceClickListener onPreferenceClickListener = new Preference.OnPreferenceClickListener() {

    @Override
    public boolean onPreferenceClick( Preference preference ) {
        return false;
    }

};

2 个答案:

答案 0 :(得分:0)

您可以在PreferenceActivity中注册一个监听器:

@Override
public void onResume() {
    super.onResume();
    getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}

@Override
public void onPause() {    
    getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
    super.onPause();
}

@Override
public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) {
    Log.i("onSharedPreferenceChanged", "preference changed: " + key);
}

答案 1 :(得分:0)

我从另一个问题中注意到了这一点,再多搜索一下。

    Preference myPref = ( Preference ) findPreference( "password" );
    myPref.setOnPreferenceClickListener( new Preference.OnPreferenceClickListener() {
        public boolean onPreferenceClick( Preference preference ) {
            Log.e("App", "password clicked!");
            return true;
        }
    } );

作品!

编辑:这可能必须在onPostCreate()方法中,因为它需要初始化,然后才能设置任何类型的侦听器(甚至找到对象)。