簡體   English   中英

Android應用上的多個警報對話框

[英]Multiple alert dialog on Android app

我正在使用Appcelerator Titanium開發跨平台應用程序。 當用戶單擊“登錄”窗口后的下一個窗口中的Android后退按鈕時,我將觸發注銷方法。 一切正常,但是第二次嘗試登錄,然后注銷警報對話框出現了兩次。 希望有人會幫忙。 賈科莫

var win = Titanium.UI.currentWindow;
var msg = Titanium.UI.createLabel({
    text:"Mail: " + win.email + "\nNome: " + win.name,
    top:10,
    left:10,
    width:300,
    height:'auto'
});
win.add(msg);
//definisco una finestra di dialogo per informare l'utente sul logout
var dialog = Ti.UI.createAlertDialog({
    buttonNames: ['Si', 'No'],
    message: 'Vuoi effettuare il logout?',
    title: 'Attenzione'
});
//intercetto il tasto indietro di android e gestisco il Logout
var listener = win.addEventListener('android:back',function(e){ 
//aggiungo un event listener alla finestra di dialogo intercettando il tasto si o no
dialog.show();
dialog.addEventListener('click', function(e){
    if (e.index == 1){
        //è stato cliccato il tasto NO, quindi nessuna azione
    }else if(e.index == 0){
        //è stato cliccato il tasto Si, quindi effettuo il logout, cancello la variabile di sessione ...
        win.close();
        win.remove(msg);
        win.remove(dialog);
    }
}); 
});

我已將您的答案從問題中排除,並將其張貼在此處。 這將使將來的用戶可以更輕松地查看您的解決方案。


解決方案最終是此代碼

var handlerBack = function (e){ 
//aggiungo un event listener alla finestra di dialogo intercettando il tasto si o no
dialog.show();
dialog.addEventListener('click', function(e){
    if (e.index == 1){
        //è stato cliccato il tasto NO, quindi nessuna azione
    }else if(e.index == 0){
        //è stato cliccato il tasto Si, quindi effettuo il logout, cancello la variabile di sessione ...
        win.close();
        win.remove(msg);
        win.remove(dialog);
        win.removeEventListener('android:back', handlerBack);
    }
}); 
};
win.addEventListener('android:back', handlerBack);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM