listpreference의 항목 및 항목 값을 dinamically 변경하고 싶습니다. 음, 마침내 작동하지만 목록이 변경되지만 문제는 환경 설정 화면의 listpreference에서 두 번째 이상을 클릭 할 때만 새 값을 볼 수 있다는 것입니다.두 번째에만 작동하는 코드로 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로 전달 된 정수 값입니다. 이것은 내가 목록의 새로운 시작 값을 아는 데 유용합니다.
그래서 환경 설정 화면을 열고 listpreference에서 처음 클릭 할 때마다 항상 1에서 10까지의 숫자를 얻지 만 몇 번이나 아무리 클릭해도 다시 원하는대로 얻을 수 있습니다. LineaActual에서 10까지의 목록을 의미합니다.
미리 감사드립니다.
왜 onPreferenceClick()에서 setEntries() 및 setEntryValues ()를 호출합니까? 왜 그냥 onCreate()에서하지 않습니까? – samgak