2015-12-17 125 views
0

什么错呢共享偏好:浮法

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); 
    } 
} 

所以我的问题是这一行:

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

当我试图改变搜索条,它停止工作。

然后我想在txt_test()中使用txt_size;

+0

_当我试图改变seekbar,它停止工作._什么是错误?发布错误日志。 – Piyush

+0

你应该描述你得到的错误以及你试图修复它的方法。而不是写废话,你可以粘贴你的堆栈跟踪或解释你的问题是什么(你得到一个未捕获的异常,seekbar在那里,不能正常工作等) –

+0

不,不够。添加错误的logcat。此外,要求不被downvote通常结束downvote –

回答

2

我最好的猜测是你试图访问它时你的SharedPreferences实例sh为null。尝试将sh=PreferenceManager.getDefaultSharedPreferences(Setting.this);移动到您的onCreate()

+0

同样的想法在这里 –

+0

是的,这是关键,谢谢猜测兄弟。 ;) –

0

我认为你应该使用

float size=10f; 
txt_size=sh.getFloat("size",0f); 
2

把下面的代码上的onCreate()

sh=PreferenceManager.getDefaultSharedPreferences(Setting.this); 

你onCreate()方法应该看起来像如下:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.setting); 
sh=PreferenceManager.getDefaultSharedPreferences(Setting.this); 

.. 
.. 

} 

希望这会帮助你。

+0

@ Sahand.Setoodeh,谢谢,不客气:) –

+0

很抱歉,我只能接受一个人和Orlangure早些时候回答。 :( –

+1

@ Sahand.Setoodeh,没问题。 –

0
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.setting); 
    sh=PreferenceManager.getDefaultSharedPreferences(this); 
}