Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

update database data in tableview

$
0
0

Hi again!

So i want my tableview to fetch new data from my database when new data is added or changed.

it`s named 'highscore' because I used it in another project.

here is my code:(so sorry for the swe/eng comments)

highscore.js

var win = Ti.UI.currentWindow;

Ti.include('app_functions.js'); Ti.include('db_funcs.js');

win.backgroundColor = '#E7FBFF';

var navBar = Ti.UI.createImageView({ top: 0, left: 0, width: '100%', height: '12%', backgroundColor: '#0191b0' });

win.add(navBar);

var btnMenu = Ti.UI.createButton({ top: '5%', left: '5%', title: 'Menu', borderRadius : 4, borderColor : '#fff', width: '50', height: '30', font: fonts[14]['normal'], color: '#fff',

});

btnMenu.addEventListener('click', function() { win.close();

});

win.add(btnMenu);

var btnDelete = Ti.UI.createButton({ top: '5%', right: '5%', font: fonts[14]['normal'], title: 'X', borderRadius : 4, borderColor : '#fff', width: '50', height: '30', color: '#fff',

}); win.add(btnDelete); btnDelete.addEventListener('click', deleteHighscores);

/** UI **/

var textFieldTeam = Ti.UI.createTextField({ borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED, color: '#336699', bottom: '10%', right: '10%', width: '39%', height: '8%', font: fonts[14]['normal'], hintText : 'Antal lag:' });

win.add(textFieldTeam);

var textFieldPersons = Ti.UI.createTextField({ borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED, color: '#336699', bottom: '10%', left: '10%', width: '39%', height: '8%', font: fonts[14]['normal'], hintText : 'Antal i varje lag:' });

win.add(textFieldPersons);

var RandomizeBtn = Ti.UI.createButton({ bottom: '0%', width: '100%', height: '8%', color: '#fff', backgroundColor: '#0191b0', font: fonts[14]['normal'], title: 'Randomize Teams'

});

win.add(RandomizeBtn);

var textField = Ti.UI.createTextField({ borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED, color: '#336699', top: '15%', left: '10%', width: '45%', height: '8%', font: fonts[14]['normal'], hintText : 'Name:' });

win.add(textField);

var saveBtn = Ti.UI.createButton({ top: '15%', right: '10%', width: '22%', height: '8%', color: '#fff', backgroundColor: '#0191b0', font: fonts[14]['normal'], title: 'Add name'

});

win.add(saveBtn);

var savedLabel = Ti.UI.createLabel({ top: '90%', text: '' });

var teamsLabel = Ti.UI.createLabel({ top: '90%', text: '' });

RandomizeBtn.addEventListener('click',function(){ teamsLabel.text = textFieldTeam.value; var antalLag = textFieldTeam.value; Ti.API.info("Antal lag: " + antalLag); Ti.API.info("Antal i varje lag: " + tableRows.length/antalLag); });

saveBtn.addEventListener('click',function(){ savedLabel.text = textField.value; loadHighscores(callback);

saveHighscore({
    name: textField.value,
    score: 2
});

});

var theTableView = Ti.UI.createTableView({ top: '25%', bottom: '20%', backgroundColor:'#E7FBFF', editable: true

});

win.add(theTableView);

var tableRows = []; function makeRow(name, score) { var row = Ti.UI.createTableViewRow({ height: dp(44) }); if (OS_is_iOS){ row.selectionStyle = Ti.UI.iPhone.TableViewCellSelectionStyle.NONE; }

row.nameLbl = Ti.UI.createLabel({
    text: name,//'Name',
    color: blackFontColor,
    font: fonts[14]['normal'],
    left: dp(15)
});
row.add(row.nameLbl);

row.scoreLbl = Ti.UI.createLabel({
    text: score,//'Team Nr:',
    color: blackFontColor,
    font: fonts[14]['normal'],
    right: dp(15)
});
row.add(row.scoreLbl);

tableRows.push(row);

}

function makeAllRows(whichDiff) { tableRows = [];

makeRow('Name', "Team NR:");

for (var i = 0; i < allHighscores.length; i++){

    if (whichDiff == 6){
        makeRow(allHighscores[i].name, allHighscores[i].score);

    }else{
        makeRow(allHighscores[i].name, allHighscores[i].score);
    }

}

theTableView.setData(tableRows);

}

loadHighscores(makeAllRows);


db_funcs.js

var allHighscores = [];

var db = Ti.Database.open('gamedata');

if (OS_is_iOS){ //ingen iCloud backup db.file.remoteBackup = false; }

var delete_database = false;//!!TODO, ska vara false i skarp version if (delete_database){

db.execute('DROP TABLE IF EXISTS highscores');

}

db.execute('CREATE TABLE IF NOT EXISTS highscores (name TEXT, score INTEGER)');

db.close();

function saveHighscore(highscoreData) {

var db = Ti.Database.open('gamedata');

if (OS_is_iOS){
    //ingen iCloud backup
    db.file.remoteBackup = false;
}


Ti.API.info('INSERT INTO highscores VALUES("'+highscoreData.name+'", '+ highscoreData.score+')');

db.execute('INSERT INTO highscores VALUES("'+highscoreData.name+'", '+ highscoreData.score+')');

//stäng db
db.close();

}

function loadHighscores(callback){

allHighscores = [];


var db = Ti.Database.open('gamedata');

if (OS_is_iOS){
    //ingen iCloud backup
    db.file.remoteBackup = false;
}

var dbRows = db.execute('SELECT * FROM highscores ORDER BY score DESC');



while (dbRows.isValidRow()) {


    var highscoreData = {
        name: dbRows.fieldByName('name'),//'Micke',
        score: dbRows.fieldByName('score')
    };

    Ti.API.info(highscoreData);


    allHighscores.push(highscoreData);


    dbRows.next();
}

dbRows.close();

db.close();


if (callback){
    callback();
}

}

function deleteHighscores() { var db = Ti.Database.open('gamedata');

if (OS_is_iOS){
    //ingen iCloud backup
    db.file.remoteBackup = false;
}


db.execute('DELETE FROM highscores');

db.close();

}



Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>