SharedPreferences错误

时间:2014-09-06 04:23:53

标签: android eclipse

android“eclipse”中的

SharedPreferences 错误

我正在尝试测试依赖于SharedPreferences存储的应用程序!

我使用 SeekBar EditText 和一个按钮..

要编写任何内容的EditText和更改文本大小的SeekBar ..

然后当我按下按钮时,我保存了文本及其大小..

所以当我再次运行应用程序时..我必须找到相同的文字和大小..

我真的找到了相同的文字,但尺寸比我保存的还要大.. 怎么了? 提示:代码中没有错误..

public class MainActivity extends Activity {


    private EditText editText ;
    private Button btn ;
    private SeekBar seekBar ;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       editText =(EditText)findViewById(R.id.editText1) ;
       seekBar=(SeekBar)findViewById(R.id.seekBar1) ;
       btn = (Button)findViewById(R.id.button1) ;
       btn.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {

         SharedPreferences prefs = getSharedPreferences("Test", MODE_PRIVATE)    ;
         prefs = getPreferences(MODE_PRIVATE)    ;
         Editor myEditor=prefs.edit();
         myEditor.putFloat("fontsize", editText.getTextSize()) ;
         myEditor.putString("text", editText.getText().toString()) ;
         myEditor.commit() ;
         Toast.makeText(getBaseContext(), "saved successfully", Toast.LENGTH_LONG).show() ;

        }

       }) ;

       SharedPreferences prefs = getSharedPreferences("Test", MODE_PRIVATE) ;
       prefs = getPreferences(MODE_PRIVATE)  ;

       float fs = prefs.getFloat("fontsize", 12) ;
       seekBar.setProgress((int) fs) ;
       editText.setText(prefs.getString("text" , "") ) ;
       editText.setTextSize(seekBar.getProgress()) ;

       seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            // TODO Auto-generated method stub
            editText.setTextSize(seekBar.getProgress()) ;
        }
    }) ;

    }

1 个答案:

答案 0 :(得分:0)

请阅读documentation

getTextSize()返回大小(以像素为单位)。 setTextSize()期望缩放像素的大小。您需要使用setTextSize( TypedValue.COMPLEX_UNIT_PX, fs );