2013-11-02 74 views
1

我只是想解決如何使用簡單的「前進」和「後退」按鈕在sqlite數據庫中的記錄之間導航。Titanium Android - 在SQLITE數據庫中導航記錄

我可以訪問數據庫並顯示記錄 - 我通過創建記錄的tableview來做到這一點,然後如果你點擊記錄,它會提供更多關於它的細節。然後,我只需要在此頁面上的按鈕瀏覽數據庫。

我不確定需要將哪些代碼應用於按鈕。

這是窗口的代碼。

// create var for the currentWindow 
var currentWin = Ti.UI.currentWindow; 
var id = currentWin.id; 


function photoGalleryDidClose(item) { 
photoView.image = item.media; 
} 


var db = Titanium.Database.open('photos'); 

var sql = db.execute('SELECT * FROM photos where id=?', currentWin.id); 

var recordID = sql.fieldByName('id'); 
var title = sql.fieldByName('title'); 
var location = sql.fieldByName('location'); 
var photographer = sql.fieldByName('photographer'); 
var equipment = sql.fieldByName('equipment'); 
var caption = sql.fieldByName('caption'); 
var notes = sql.fieldByName('notes'); 
var date = sql.fieldByName('date'); 
var imageUrl = sql.fieldByName('imageUrl'); 


//Labels to display catalogue details 

var labelrecordID = Titanium.UI.createLabel({ 
    text:'Record ID:', 
    font:{fontSize:18}, 
    top:30, 
    left: 10, 
    height: 25, 
    width:'auto' 
}) 
currentWin.add(labelrecordID); 

var labelrecordID1 = Titanium.UI.createLabel({ 
    text:' '+ recordID +'', 
    font:{fontSize:18}, 
    color:'black', 
    borderRadius: 2, 
    top:30, 
    left: 150, 
    height: 25, 
    backgroundColor:'white', 
    width:'300' 
}) 
currentWin.add(labelrecordID1); 


var labelTitle = Titanium.UI.createLabel({ 
    text:'Title:', 
    font:{fontSize:18}, 
    top:70, 
    left: 10, 
    height: 25, 
    width:'auto' 
}) 
currentWin.add(labelTitle); 

var labelTitle1 = Titanium.UI.createLabel({ 
    text:' '+ title +'', 
    font:{fontSize:18}, 
    color:'black', 
    borderRadius: 2, 
    top:70, 
    left: 150, 
    height: 25, 
    backgroundColor:'white', 
    width:'300' 
}) 
currentWin.add(labelTitle1); 

// 
//I CUT OUT A LOT OF THE CODE HERE AS IT IS JUST THE SAME AS ABOVE... 
// 

// create a view to add the label and photo 
    var photoContainerView = Ti.UI.createView({ 
     top: 310, 
     left: 10, 
     height: 230, 
     width: Ti.UI.FILL 
    }); 

    var photoLabel = Ti.UI.createLabel({ 
     text: 'Photo:', 
     left: 0, 
     height: Ti.UI.SIZE, 
     width: Ti.UI.SIZE, 
     font:{fontSize:18}  
    }); 

    photoContainerView.add(photoLabel); 

    var photoView = Ti.UI.createImageView({ 
     image: imageUrl, 
     top: 0, 
     left: 125, 
     height: 200, 
     width: 200, 
     borderColor: 'gray', 
     borderWidth: 1 
    }); 

    photoContainerView.add(photoView); 
    currentWin.add(photoContainerView); 


// create navigation buttons 
// 
var button_previous = Titanium.UI.createButton({ 
    title: 'Previous', 
    color: 'white', 
    backgroundColor: '#464646', 
    font:{fontSize:20,fontFamily:'Helvetica Neue'}, 
    bottom: 20, 
    left:10, 
    width: 100, 
    height: 60 
}); 

currentWin.add(button_previous); 

var button_next = Titanium.UI.createButton({ 
    title: 'Next', 
    color: 'white', 
    backgroundColor: '#464646', 
    font:{fontSize:20,fontFamily:'Helvetica Neue'}, 
    bottom: 20, 
    right:10, 
    width: 100, 
    height: 60 
}); 

currentWin.add(button_next); 

我只是想將事件偵聽器添加到按鈕,這樣我就可以去前進/後退通過在數據庫中的記錄,但我不能確定從哪裏開始,需要使用哪些代碼。

任何建議非常感謝。

JC

回答

1

使用點擊收聽刷新新的數據表,存儲在表和頁面您的當前位置,通過這樣的:

var currentPage = 0; 
var pageSize = 25; 
button_next.addEventListener('click', function(e) { 
    currentPage++; 
    // Load the data 
    var sql = db.execute('SELECT * FROM photos where id>? LIMIT ?', currentPage * pageSize, pageSize); 

    .... Your code to convert this statement to actual rows .... 

    table.setData(yourUpdatedRowDataArray); 
}); 

前面的按鈕,將相同的方式工作除了相反。

+0

感謝您的意見 - 稍微調整一下效果非常好!再次感謝 – pelagos

相關問題