ListPreferenceをそのまま使うと、保存・読込のデータはStringになる。
これは不便だ。そこで、longによりデータの保存・読込を行う。
public class myLP extends ListPreference{
public myLP(Context context){
super(context);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public myLP(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public myLP(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public myLP(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onSetInitialValue(boolean restoreValue, Object defaultValue){
if(restoreValue){//long型データをファイルから読む。
long lValue;
String s;
lValue = //PreferenceManager.getDefaultSharedPreferences()を使ってデータを読む。
s = String.valueOf(lValue);
setValue(s);
}
else{//ファイルへ保存する。
//このファイルへ保存する部分は、別途本体において、自分でプログラムする。
}
}
}
class SettingsFragment extends PreferenceFragmentにて
@Override
public boolean onPreferenceChange(Preference preference, Object newValue){String sValue = (String)newValue;
//Long.parseLong(sValue)を
//PreferenceManager.getDefaultSharedPreferences()を使って保存する
return true;
}
(参考)
0 件のコメント:
コメントを投稿