2013-08-21 107 views
-1

我只是想顯示一個簡單的彈出菜單,包含垂直順序的菜單項。就像Titanium的選項對話框一樣。但沒有單選按鈕。我已經使用了androidView,如下所示,但是如何在單擊某個選項時關閉此對話框?簡單的彈出菜單鈦Android

menuBtn.addEventListener("click", function(e) { 

var data = []; 


for (var n = 0; n < indexToNameAndHandlerMap.length; n++) { 

    var row = Ti.UI.createTableViewRow({ 
     backgroundSelectedColor : '#ffffff', 
     backgroundColor : '#ffffff', 
     opacity : 1.0, 
     height : Ti.UI.SIZE, 
     className : 'row', 
     objName : 'row', 
     layout : "horizontal" 
    }); 

    var movieNameLabel = Ti.UI.createLabel({ 
     text : indexToNameAndHandlerMap[n].menuItem, 
     color : '#000000', 
     backgroundColor : '#ffffff', 
     textAlign : Titanium.UI.TEXT_ALIGNMENT_LEFT, 
     font : { 
      fontSize : '20dp', 
     }, 
     width : '96%', 
     height: '45dp', 
     left: '2%', 
     objName : 'movieNameLabel', 
     touchEnabled : false 
    }); 

    row.add(movieNameLabel); 

    data.push(row); 
} 

var table = Ti.UI.createTableView(
{ 
    top : '0%', 
    left: 0, 
    separatorColor : "#000000", 
    backgroundColor : '#ffffff', 
}); 

table.setData(data); 

var loginView =Ti.UI.createView({ 
     backgroundColor : '#ffffff', 
    }); 

    loginView.add(table); 


Ti.UI.createOptionDialog({ 
title:'Select An Option', 
androidView:loginView 
}).show(); 


}); 

回答

2

試試下面的代碼

var loginView =Ti.UI.createView({ 
    backgroundColor : '#ffffff', 
}); 

loginView.add(table); 

var option = Ti.UI.createOptionDialog({ 
    title:'Select An Option', 
    androidView:loginView 
}); 

option.show(); 

option.addEventListener('click', function(e){ 
    option.hide(); /*can also use e.source.hide();*/ 
}); 
+0

對於什麼是使用androidView選項? – Artur79

+1

Android視圖選項有助於自定義您的警報對話框。無論視圖內部什麼都會顯示在警報對話框中。在我的回答中,登錄視圖將顯示在警報對話框中。請參閱http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.AlertDialog-property-androidView上的文檔 – Anand