Child pages
  • SharedPreferences i/o probléma
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »

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

      
      
Page viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels