如何将sharedPrefs.getString用于Runnable

时间:2014-11-09 23:36:38

标签: java android

如何将这个sharedPrefs.getString用于我的Runnable?

    private Runnable updateCounterThread = new Runnable() {

    public void run() {

        timeInMilliseconds = SystemClock.uptimeMillis() - startTime;

        updatedTime = timeSwapBuff + timeInMilliseconds;

        String tauxhoraire = sharedPrefs.getString("taux_horaire", "NULL");
        double taux=Double.parseDouble(tauxhoraire) * 100;
        int centimes = (int) (updatedTime / 1000 * (taux / 60 / 60)) ;
        int euros = centimes / 100;
        centimes = centimes % 100;
        counterVal.setText("" + euros + ","
                + String.format("%02d", centimes) + " €");
        customHandler.postDelayed(this, 0);
    }

};

因为当我喜欢它时,它是一个错误" sharedPrefs无法解决"但是我无法在循环中导入它。

当我将它添加到循环中

        SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);

我有这个错误" PreferenceManager类型中的方法getDefaultSharedPreferences(Context)不适用于参数(new Runnable(){})"

所以我尝试将它添加到我的第一个循环

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_main);

    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    String tauxhoraire = sharedPrefs.getString("taux_horaire", "NULL");

但由第一个错误" sharedPrefs导致无法解决"

由于

1 个答案:

答案 0 :(得分:1)

在你创建的Runnable对象中,没有

的可见性

<强> sharedPrefs

在您使用的第一条路径上。

在第二个路径中(抛出的方法,PreferenceManager类型中的方法getDefaultSharedPreferences(Context)不适用于参数(new Runnable(){})&#34; )错误是因为 this 被称为Runnable,必须引用一个Context,例如一个Activity。

        SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

您可以尝试按照第一条路径声明

SharedPreferences sharedPrefs 

活动

的成员
public class MainActivity extends Activity {
private SharedPreferences sharedPrefs ;