android - 有没有办法通过警报对话框的按钮完成当前活动?
问题描述
我创建的警报框有问题。我的意图是使用警告框重新启动或完成我的更改活动页面的活动。但是,拥有finish();
不起作用并给出一个波浪线错误。
有没有办法使用警报框的按钮完成当前活动而不会出错?
CreateCancelDialog.java
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatDialogFragment;
public class CreateCancelDialog extends AppCompatDialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builderDialogCancel = new AlertDialog.Builder(getActivity());
builderDialogCancel.setTitle("Confirm Cancellation");
builderDialogCancel.setMessage("Are you sure you wish to return to the main screen?");
builderDialogCancel.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
callMainPage();
}
}) .setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getDialog().cancel();
}
});
return builderDialogCancel.create();
}
private void callMainPage() {
Intent intent = new Intent(getActivity(), GPIMainUI.class);
startActivity(intent);
finish(); //gives out squiggly line
}
}
编辑: 我知道下面的代码在正常活动中工作。但它在警报对话框中不起作用。
Intent intent = new Intent(this, ChangePassword.class);
finish();
startActivity(intent);
解决方案
尝试调用:
getActivity().finish();
而不仅仅是finish();
推荐阅读
- oracle - 在 WebLogic 12c 服务器上启动管理服务器时出错
- excel - 转置一列并保持相对值
- elasticsearch - 从观察者 api 中的 ctx.payload 循环返回的文档数量增加 - Elasticsearch
- python - 使用 for 循环保存具有不同名称的多个图像
- mysql - SQL 语法“ALTER TABLE 表名”有什么问题?
- node.js - 如何使用 Mongoose 和 MongoDB 自动交叉填充集合?
- python-3.x - 如何用另一个数据框替换一个数据框?
- python - SQS receive_message 不返回任何消息
- javascript - 如何在散景地图中使用 Javascript?
- javascript - 函数只执行一次 While 循环