我正在尝试打开一个对话框,但是会产生此错误
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Configuration android.content.res.Resources.getConfiguration()' on a null object reference
at android.app.ActivityThread.updateLocaleListFromAppContext(ActivityThread.java:6206)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6446)
at android.app.ActivityThread.access$1300(ActivityThread.java:231)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7478)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
我已经尝试过android.content.res.Resources.getConfiguration()' on a null object reference中的解决方案,但是它不起作用,并且错误仍然出现。
这是我的代码:
TodoListTimeDialog dialog = new TodoListTimeDialog(getApplicationContext());
TodoListTimeDialog.Builder mBuilder = new TodoListTimeDialog.Builder(getApplicationContext());
dialog.show();
final EditText input = dialog.getView().findViewById(R.id.userInput);
Button confirm = dialog.getView().findViewById(R.id.dialog_confirm);
confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timeLeftInMilliSeconds = Long.parseLong((input.getText().toString())) * 60000;
}
});
对话框类:
public class TodoListTimeDialog {
private Context context;
private OnTodoListTimeDialogListener mListener;
private android.app.AlertDialog alert;
View v;
public TodoListTimeDialog(Context context) {
this.context = context;
buildPlan();
}
private void buildPlan() {
View dialogView = View.inflate(context, R.layout.todolist_time_dialog, null);
setView(dialogView);
Button cancel = dialogView.findViewById(R.id.dialog_back);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alert.dismiss();
}
});
// Initialize and build the AlertBuilderDialog
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(context)
.setView(dialogView);
alert = builder.create();
if (alert.getWindow() != null)
alert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}
public void show() {
alert.show();
}
private void setView(View view) {
v = view;
}