问题描述
我正在开发一个具有 DialogBuilder 类的应用程序,我在其中实现了应用程序的所有对话框,以便能够在其他服务或活动中调用它们;除了在一个活动中我尝试了所有方法来传递上下文之外,它运行得非常好 - 它不起作用;因此,如果您对此有任何提示或帮助,我将非常高兴,谢谢!
对话:
public static void bookingConfirmationDialog(Context mContext) {
if(mContext != null) {
final Dialog dialog = new Dialog(GoldbekStorageApp.getInstance(),0);
dialog.requestwindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(true);
dialog.setContentView(R.layout.new_booking_layout);
dialog.getwindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
TextView textView = dialog.findViewById(R.id.messageId);
textView.setText(GoldbekStorageApp.getInstance().messageId);
Button okButton = dialog.findViewById(R.id.ok);
okButton.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
对话框的调用:
proceedButton.setonClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
message.setType(type);
message.setFromId(fromID);
message.setToId(toID);
message.setTypeId(typeID);
message.setTime(time);
message.setTitle(title);
message.setReceiptNo(receiptNo);
message.setNote(note);
RestClient.putBookingOnPallet(basic,message,context);
DialogBuilder.bookingConfirmationDialog(context);
/* Intent activityChangeIntent = new Intent( NewProductActivity.this,NewProductActivity.class);
NewProductActivity.this.startActivity(activityChangeIntent);*/
}
});
解决方法
我可能遗漏了一些东西,但您可以在 DialogFragment 类中 override onAttach
而不是通过构造函数传递上下文。
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
}