Search code examples
androidandroid-sharedpreferences

shared preferences : float


something is wrong with it

package com.sahandxx3.Countries;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;

/**
 * Created by Setude on 17-Dec-15.
 */
public class Setting extends Activity {
    SharedPreferences sh;
    TextView txtflag,txt_test;
    SeekBar sbflag;
    int progress = 10;
    float size=10;
    float txt_size;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.setting);
        init();
        txtflag.setText("Flag size : "+sbflag.getProgress());

        sbflag.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            @Override
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
                txt_size=sh.getFloat("size",0);
                progress= i;
                size=(progress*5)+5;
                txtflag.setText("Flag size : "+progress);
                txt_test.setTextSize(size);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

                txtflag.setText("Flag size : "+progress);
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                txtflag.setText("Flag size : "+progress);
                sh=PreferenceManager.getDefaultSharedPreferences(Setting.this);
                SharedPreferences.Editor edit=sh.edit();
                edit.putFloat("size",size);
                edit.commit();
            }
        });
    }
    private void init() {
        txtflag= (TextView) findViewById(R.id.txtflag);
        sbflag= (SeekBar) findViewById(R.id.sbflag);
        txt_test= (TextView) findViewById(R.id.btn_test);
    }
}

so my problem is with this line:

 txt_size=sh.getFloat("size",0);

When I try to change the seekbar,It stops working.

then I want to use txt_size in txt_test();


Solution

  • My best guess is that your SharedPreferences instance sh is null at the moment you try to access it. Try to move sh=PreferenceManager.getDefaultSharedPreferences(Setting.this); to your onCreate().