2013-11-02 44 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

相关问题