警报对话框消失

时间:2017-12-01 04:48:05

标签: android android-studio-3.0

单击后退按钮时,

警报对话框消失。没有给我机会做出选择。当m == null ||时,假设该对话框会弹出m.getPosition()== null。 " M"是变量" Marker m"

Option Explicit

Sub HideWorksheets()
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    ' Hide all except activeone
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ThisWorkbook.ActiveSheet.Name Then ws.Visible = xlSheetHidden
    Next
    ' Unhide selected worksheets
    For Each ws In ThisWorkbook.Windows(1).SelectedSheets
        ws.Visible = xlSheetVisible
    Next ws
    Application.ScreenUpdating = True
End Sub

2 个答案:

答案 0 :(得分:0)

你必须使用调试模式检查这个地方

,

这里只有问题。

答案 1 :(得分:0)

首先,您正在检查错误的情况,请参阅

if(m == null || m.getPosition() == null)

1。如果m为null,那么当您在空对象上调用 getPosition()时,第二个条件将抛出 NullPointerException

  1. 你在if条件中使用||(或者)(m == null)检查,这是完全错误的。
  2. 首先,您将 If 语句设为正确,然后以下代码将适用于您的方案。

     new AlertDialog.Builder(this)
                    .setTitle("Really Exit?")
                    .setMessage("Are you sure you want to exit, without creating a marker?")
                    .setNegativeButton(android.R.string.no, null)
                    .setCancelable(false)
                    .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
    
                        }
                    }).show();
    

    要检查场景中的Marker,最好创建一个类似这样的方法:

       private boolean isMarkerAvailable() {
        if (m == null)
            return false;
        else if (m.getPosition() == null)
            return false;
        return true;
    }
    
     if (!isMarkerAvailable()) {
            // Show your alert here or you can toggle 
            // the condition whatever is apropriate in your scenario
        }