2016年2月29日月曜日

ListPreferenceを使って、longのデータを保存・読込を行う

ListPreferenceを使って、longのデータを保存・読込を行う

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 件のコメント:

コメントを投稿