我正在适配器类中打开一个对话框。但它向我显示了窗口管理器错误令牌错误。
private void Dialog()
{
final Dialog dialog = new Dialog(this.context.getApplicationContext());
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
dialog.setCancelable(false);
dialog.setContentView(R.layout.pg_dialog);
TextView text = (TextView) dialog.findViewById(R.id.tv_dialog_statusMsg);
TextView textDescp = (TextView) dialog.findViewById(R.id.tv_dialog_discriptMsg);
Button dialogButton = (Button) dialog.findViewById(R.id.btnOkDialog);
dialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
Toast.makeText(context, "HELLO", Toast.LENGTH_SHORT).show();
FetchWalletBalance();
}
});
dialog.show();
}
答案 0 :(得分:0)
代替:
final Dialog dialog = new Dialog(this.context.getApplicationContext());
尝试:
Dialog dialog = new Dialog(yourClass.this);
请注意已传递参数。
答案 1 :(得分:0)
在初始化对话框或视图时不使用aplicationContext,需要更改活动上下文:示例
final Dialog dialog = new Dialog(Dialog(this@MainActivity));
并更改dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
至
dialog.window?.setType(WindowManager.LayoutParams.TYPE_TOAST)
或将其删除,否则将导致应用崩溃。