gpt4 book ai didi

android - 仅使用 Context 而不是 Activity 实例显示对话框

转载 作者:行者123 更新时间:2023-11-29 14:18:10 26 4
gpt4 key购买 nike

如果我使用 Activity 实例,我可以显示对话框,但是当我使用 Context 或 Application Context 实例时,Dialog 不显示。

AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(title);
builder.setMessage(msg);

if (null != positiveLabel) {
builder.setPositiveButton(positiveLabel, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {

dialog.cancel();
if (null != listener) {
listener.onOk();
}
}
});
}

if (null != negativeLable) {
builder.setNegativeButton(negativeLable, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {

dialog.cancel();
if (null != listener) {
listener.onCancel();
}
}
});
}

builder.create().show();

你能给我一个不使用 Activity 实例来显示对话框的解决方案吗

最佳答案

这是您必须始终记住的有关上下文的重要事项之一。上下文有两种类型,Activity 上下文Application 上下文。您会在许多与 UI 相关的类中观察到,传递了一个 Context。这不是应用程序上下文!在这种情况下,您必须始终传递 Activity 上下文。除了 Toast 之外,没有其他 UI 组件可以与应用程序上下文一起工作。

当您需要一些与应用程序相关的服务或组件时,总是会传递应用程序上下文,例如电话管理器、位置管理器等。

对于 UI,您必须始终传递与 UI 相关的上下文,即 Activity。

关于android - 仅使用 Context 而不是 Activity 实例显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com