Sziasztok,
van egy preferences.xml-em, a releváns töredék:
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <PreferenceCategory android:title="Időbeállítások" > <ListPreference android:defaultValue="15" android:entries="@array/listMinutesOffset" android:entryValues="@array/listMinutesOffsetValues" android:key="iMinutesOffset" android:title="Időbeosztás percekben" android:summary="a legkisebb választhatő időköz" />
A @array/listMinutesOffset ::= {10perc,15 perc,...}, a @array/listMinutesOffsetValues ::= {10,15,...}
Egy teljesen szimpla 3 soros Activityvel keztelem a preferences képernyőt:
public class Preferences extends PreferenceActivity { @Override protected void onCreate( Bundle savedInstanceState ) { super.onCreate( savedInstanceState ); addPreferencesFromResource( R.xml.preferences ); } /* ide kellene valami konverziós izé? */ } public class Prefs { private SharedPreferences prefs = null; public int iMinutesOffset; // offset start of new appointment public Prefs( Context ctx ) { prefs = PreferenceManager.getDefaultSharedPreferences( ctx ); Load(); } }
A kérdésem az, hogy hogyan lehet szabályozni azt, hogy a preferences.xml-ben felsorolt tagok milyen adattípusúak legyenek? A fenti kód ugyanis az iMinutesOffset értéket csak String-ként hajlandó beolvasni, ha int-ként próbálom az .edit(), aztán -commit() kiírni, utána cast hibát kapok.
Ezexerint pl. a putInt/getInt metódusok csak custom értékek tárolására használhatók?
Köszönöm