2015-12-17 126 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); 
}