通过仅第二次工作的代码更改ListPreference条目

时间:2015-01-11 22:58:12

标签: android android-preferences

我想改变列表首选项的列表条目和入口值。好吧,最后它工作,列表更改,但问题是,只有当我在首选项屏幕的listpreference中第二次或更多次单击时,才能看到新值。

第一次,列表始终是原始列表,从1到10。

        numeroIntentosLP.setOnPreferenceClickListener(new OnPreferenceClickListener()
    {
        @Override
        public boolean onPreferenceClick(Preference preference)
        {

            CharSequence[] NuevosValores = new String[10 - LineaActual];
            int Indice = 0;

            for(int i = LineaActual + 1; i <= 10; i++)
            {
                NuevosValores[Indice++] = String.valueOf(i);
            }

            numeroIntentosLP.setEntries(NuevosValores);
            numeroIntentosLP.setEntryValues(NuevosValores);

            return true;
        }
    });

我尝试过使用numeroIntentosLP.setOnPreferenceChangeListener,但效果相同。 LineaActual是我从MainActivity传递给PreferenceActivity的整数值。这对我了解列表的新起始值很有用。

所以,每当我打开首选项屏幕并且我第一次点击列表首选项时,我总是得到数字1到10,但是当我再次点击时,无论多少次,我得到我想要的,我的意思是从LineaActual到10的列表。

提前致谢。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。它就像将代码直接放在onCreate中一样简单,而不是放在监听器中。

谢谢samgak,我看到你的回答有点迟了,你说得对,谢谢你。