使用内部类的共享preferences [英] Use sharedpreferences inside class
问题描述
我使用的是类中我的共享preferences有问题。我的code和程序流程:
I am having a problem using my shared preferences inside a class. My code and program flow:
我有一个微调
里面我activity.I我实现我自己的OnItemSelectedListener是这样的:
I have a Spinner
inside my activity.I am implementing my own OnItemSelectedListener like this:
MyOnItemSelectedListener.java
public class MyOnItemSelectedListener implements OnItemSelectedListener {
SharedPreferences pref;
Editor editor;
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
//parent.setSelection(7);
Toast.makeText(parent.getContext(), "Selected Country : " + parent.getItemIdAtPosition(pos), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
我把上面的类从我的活动是这样的:
I call the above class from my activity like this:
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new MyOnItemSelectedListener());
到目前为止good.What我要的是节省 spinner1
所选项目到用户的preferences(从保存的值设置)。
So far so good.What i want is to save the selected item on spinner1
to the user's preferences(and set it from saved value).
一个活动里面我用我的共享preFS是这样的:
Inside an activity i am using my shared prefs like this:
preF = getApplicationContext()getShared preferences(我的preF,0);
但上下文不存在在类中!任何帮助检索/保存preF当用户选择的微调中的项目?
but inside the class the context doesn't exists! Any help retrieving/saving pref when the user selects an item on the spinner?
感谢您!
推荐答案
为您的听众一个构造函数和传递上下文
来的:
Create a constructor for your listener and pass a Context
to it:
public class MyOnItemSelectedListener implements OnItemSelectedListener {
SharedPreferences pref;
Editor editor;
public MyOnItemSelectedListener(Context context) {
pref = context.getSharedPreferences("MyPref", 0);
}
// rest of your code
}
这篇关于使用内部类的共享preferences的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!