首页 > 解决方案 > 有没有办法通过警报对话框的按钮完成当前活动?

问题描述

我创建的警报框有问题。我的意图是使用警告框重新启动或完成我的更改活动页面的活动。但是,拥有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);

标签: androidandroid-fragmentsandroid-intent

解决方案


尝试调用: getActivity().finish();而不仅仅是finish();


推荐阅读