不在活动中显示对话框的原因可能是因为对话框的显示代码没有在正确的活动中调用。下面是一个解决方法的代码示例:
public class MainActivity extends AppCompatActivity {
private AlertDialog alertDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示")
.setMessage("这是一个对话框")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 确定按钮的点击事件
}
});
alertDialog = builder.create();
}
private void showDialog() {
if (!isFinishing()) {
alertDialog.show();
}
}
// 在合适的时机调用showDialog方法来显示对话框
// 例如,在按钮的点击事件中调用showDialog方法
public void onButtonClick(View view) {
showDialog();
}
}
在上面的代码中,我们首先在onCreate
方法中创建了一个对话框alertDialog
。然后,在showDialog
方法中,我们检查当前活动是否处于正在结束的状态(通过isFinishing()
方法),如果不是,则调用alertDialog.show()
方法来显示对话框。
这样,我们就可以在适当的时机调用showDialog
方法来显示对话框,而不会出现在活动结束时仍然显示对话框的问题。