自定义view里使用SharedPreferences时传入Context为this报错
时间: 2023-12-10 14:37:43 浏览: 72
在自定义View中使用SharedPreferences,需要传入一个Context对象作为参数,但是在View中this指代的是该View的实例,而不是Context对象。因此,如果要使用SharedPreferences,需要通过其他方式获取到Context对象。
一种常见的方式是在构造方法中传入Context对象,并将其存储在成员变量中以供后续使用。例如:
```java
public class MyView extends View {
private Context mContext;
private SharedPreferences mSharedPreferences;
public MyView(Context context) {
super(context);
mContext = context;
mSharedPreferences = mContext.getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
}
// ...
}
```
在上面的例子中,我们在构造函数中将传入的Context对象存储在成员变量mContext中,并使用它来获取SharedPreferences对象。
另外,如果你需要获取Activity的Context对象,可以通过getContext()方法来获取。但是需要注意的是,只有当View已经被添加到Activity中后,该方法才能返回正确的Context对象。因此,在使用之前需要确保View已经被添加到Activity中。
阅读全文