我有一个类thate扩展了一个内置的对话框类,我想在其中访问sharedprefence,但此时有空指针异常。
这是我的代码
public class DialogCancelOrder extends Dialog {
Context context;
public DialogCancelOrder(Context a, String orderid) {
super(a);
this.orderid = orderid;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sp = context.getSharedPreferences("afewtaps", Context.MODE_PRIVATE);
face = Typeface.createFromAsset(context.getAssets(), "fonts/Nunito-Regular.ttf");
face1 = Typeface.createFromAsset(context.getAssets(), "fonts/Rupee_Foradian_2.ttf");
}
答案 0 :(得分:3)
您错过了 context = a; 这一行使用以下代码。我已经在构造函数中为上下文赋值。
public class DialogCancelOrder extends Dialog {
Context context;
public DialogCancelOrder(Context a, String orderid) {
super(a);
this.orderid = orderid;
this.context = a;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sp = context.getSharedPreferences("afewtaps", Context.MODE_PRIVATE);
face = Typeface.createFromAsset(context.getAssets(), "fonts/Nunito-Regular.ttf");
face1 = Typeface.createFromAsset(context.getAssets(), "fonts/Rupee_Foradian_2.ttf");
}
}
答案 1 :(得分:0)
您没有初始化context
字段。在构造函数中尝试这个:
this.context = a;
答案 2 :(得分:0)
你没有初始化上下文使用它。这可能会有所帮助
public DialogCancelOrder(Context a, String orderid) {
super(a);
this.orderid = orderid;
context=a;
}
答案 3 :(得分:0)
您根本不会在context
变量中写入任何内容。然后你试着用它。
您可以在this.getContext()
Dialog
,而不是声明自己的变量