2015-01-29 3 views
0

Я создаю класс базы данных и создание объекта этого класса на нажатие кнопки, но контроллер не ударяя этот класс вот мой код базы данныхСоздание таблицы и вставки записей в таблице в Android с помощью RubyMotion

class DataStore < Android::Database::SQLite::SQLiteOpenHelper 
    DATABASE_NAME = "MyFriendsDatabase" 

    def initialize(context) 
    puts "consructor in database" 
    #super(context, Name, Factory, Version) 
    #context - this is used to create database 
    #name - name of the database file 
    #factory - A cursor factory(usually pass nil) 
    #Version - the version of database. this number is used to identify if there is an upgrade or downgrade of the database 
    super(context, DATABASE_NAME, nil, 1) 
    end 

    def onUpgrade(db, oldVersion, newVersion) 
    #db.execSQL("DROP TABLE IF EXISTS credentials") 
    onCreate(db) 
    end 
    #create 
    def onCreate(database) 
    puts "table creation" 
    database.execSQL("CREATE TABLE credentials(username TEXT, password TEXT)") 
    end 
    #insert 
    def add_credentials(username, password) 
    puts "inserting data in table" 
    values = ContenValues.new(2) 
    values.put("username", username) 
    values.put("password", password) 
    getWritableDatabase.insert("credentials", "username", values) 
    end 
    #retrieve 
    def get_credentials 
    puts "coming here &&&&&&&&&&&" 
    cursor = getReadableDatabase.rawQuery("select * from credentials", nil) 
    cursor 
    end 

    #deleting all records 

    def deleteAll 
    getWritable.delete("credentials", nil, nil) 
    end 

end 

код, который будет выполняться при нажатии кнопки

database = DataStore.new(self) 
     database.add_credentials(@text_box_value.getText.toString, @text_box.getText.toString) 
     puts database.get_credentials 

Любой может мне помочь.

Заранее спасибо

+0

Если вы отредактируете свой ответ, чтобы исправить эти блоки кода, это поможет. –

ответ

0

Это известное ограничение RubyMotion Android. Вы не можете делать супер или переопределять конструкторы классов Java из Ruby. См. Эту ссылку http://www.rubymotion.com/developers/guides/manuals/android/project-management/#_extending_classes_with_java

Также я делаю что-то для этого, поэтому вам не придется иметь дело с необработанным SQL. Вы можете, если хотите (или нужно). Я все равно поддержу это в своем драгоценном камне. Я отредактирую свой ответ, когда я его выпустил. Благодарю. Он еще не готов.