2016-03-27 16 views
1

Bir alarm saati uygulaması yapmak istiyorum. Aslında şimdi tüm alarmlarımı veritabanına koymak istiyorum ve bunu zaten yaptım ama alarmları kontrol etmek istediğimde (LogCat üzerinden) farklı alarmlar alıyorum. Bu nasıl oluyor? Bana yardım et lütfen! mySQLiteHelper.class:Verileri kaydetmeden önce ve sonra neden farklı sonuçlar aldım?

public class mySQLiteHelper extends SQLiteOpenHelper { 
    // All Static variables 
    // Database Version 
    public static final int DATABASE_VERSION = 2; 

    // Database Name 
    private static final String DATABASE_NAME = "alarms.db"; 

    // Contacts table name 
    private static final String TABLE_ALARMS = "alarms"; 

    // Contacts Table Columns names 
    private static final String KEY_ID = "id"; 
    private static final String KEY_ALARM = "alarm"; 
    private static final String KEY_NAME = "name"; 

    public mySQLiteHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    // Creating Tables"create table alarms (" 
    //+ "id integer primary key," 
     //  + "alarm text," 
     // + "name text," // added a ',' 
      // + "alarmname text" + ");" 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_ALARMS + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_ALARM + " TEXT, " 
       + KEY_NAME + " TEXT" + ")"; 
     db.execSQL(CREATE_CONTACTS_TABLE); 
    } 

    // Upgrading database 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // Drop older table if existed 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_ALARMS); 

     // Create tables again 
     onCreate(db); 
    } 

    /** 
    * All CRUD(Create, Read, Update, Delete) Operations"," + alarm.getName() +,name 
    */ 

    // Adding new contact 
    void addAlarm(Alarm alarm) { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     String sql = 
       "INSERT or replace " + 
         "INTO alarms (alarm,"+KEY_NAME+") " + 
         "VALUES("+ alarm.getAlarm() + ",'" + alarm.getName() + "')"; 
     //String sql = 
      //  "INSERT or replace INTO alarms (alarm,alarmname) VALUES("+ alarm.getAlarm() + ",'" + alarm.getName() + "')" ; 
     db.execSQL(sql); 
     db.close(); // Closing database connection 
    } 

    // Getting single contact 
    String getAlarm(String alarmname) { 
     String query = "Select * FROM " + TABLE_ALARMS + " WHERE " + KEY_NAME + " = \"" + alarmname + "\""; 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor cursor = db.rawQuery(query, null); 
     if (cursor.getCount()>0) 
      cursor.moveToFirst(); 
     String alarm = cursor.getString(cursor.getColumnIndex(KEY_ALARM)); 
     cursor.close(); 
     // return contact 
     return alarm; 
    } 

    // Deleting single contact 
    public void deleteAlarm(Alarm alarm) { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     db.delete(TABLE_ALARMS, KEY_ID + " = ?", 
       new String[] { String.valueOf(alarm.getID()) }); 
     db.close(); 
    } 


    // Getting contacts Count 
    public int getAlarmsCount() { 
     String countQuery = "SELECT * FROM " + TABLE_ALARMS; 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor cursor = db.rawQuery(countQuery, null); 
     int i = cursor.getCount(); 
     cursor.close(); 

     // return count 
     return i; 
    } 
} 

Alarm.class:

public class Alarm { 
    //private variables 
    int _id; 
    String _name; 
    String _alarm; 

    // Empty constructor 
    public Alarm(String alarm,String alarmname){ 
     this._alarm = alarm; 
     this._name = alarmname; 
    } 
    // constructor 
    public Alarm(int id, String name, String alarm){ 
     this._id = id; 
     this._name = name; 
     this._alarm = alarm; 
    } 

    // constructor 
    public Alarm(String alarm){ 
     this._alarm = alarm; 
    } 
    // getting ID 
    public int getID(){ 
     return this._id; 
    } 

    // getting name 
    public String getName(){ 
     return this._name; 
    } 

    // getting phone number 
    public String getAlarm(){ 
     return this._alarm; 
    } 
} 

Bu benim ayarlanan süre, addAlarm arayıp ilk kez benim alarmları almak

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.MINUTE,timePicker.getCurrentMinute()); 
calendar.set(Calendar.HOUR_OF_DAY,timePicker.getCurrentHour()); 
Calendar calendar1 = Calendar.getInstance(); 
calendar1.set(Calendar.MINUTE, timePicker1.getCurrentMinute()); 
calendar1.set(Calendar.HOUR_OF_DAY,timePicker1.getCurrentHour()); 
    String alarm1 = Long.toString(calendar.getTimeInMillis()); 
        String alarm2 = Long.toString(calendar1.getTimeInMillis()); 
        Log.i("Alarm1.1",alarm1); 
        Log.i("Alarm2.1",alarm2); 
        mySQLiteHelper mySQLiteHelper = new mySQLiteHelper(MainActivity2.this); 
        Log.i("Point_version",Integer.toString(mySQLiteHelper.DATABASE_VERSION)); 
        mySQLiteHelper.addAlarm(new Alarm(alarm1,"alarm1")); 
        mySQLiteHelper.addAlarm(new Alarm(alarm2,"alarm2")); 

Ve nasıl bir süre sonra alarmlarımı alıyorum

String alarm1 = mySQLiteHelper.getAlarm("alarm1"); 
     String alarm2 = mySQLiteHelper.getAlarm("alarm2"); 
     Log.i("Alarm1.2",alarm1); 
     Log.i("Alarm2.2",alarm2); 

Ben bu sonuçlar aldık bu çalışmıştı zaman: ...

Alarm1.1﹕ 1459098157713 
Alarm2.1﹕ 1459098230836 
Alarm1.2﹕ 1459095666194 
Alarm2.2﹕ 1459095664808 
+0

Saat ve dakika için takvim ve takvim1 kodunu ekleyebilir misiniz? – GiapLee

+0

@giaplee Bir göz at, sorumu düzenledim –

cevap

1

bu

String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_ALARMS + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_ALARM + " TEXT, " 
      + KEY_NAME + " TEXT, UNIQUE ("+KEY_NAME+") ON CONFLICT REPLACE" + ")"; 
db.execSQL(CREATE_CONTACTS_TABLE); 

bu

String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_ALARMS + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_ALARM + " TEXT, " 
       + KEY_NAME + " TEXT" + ")"; 
db.execSQL(CREATE_CONTACTS_TABLE); 

değiştirin ve söz konusu uygulama yeniden

0

Aslında tüm verileri silmeyi unuttum. Birkaç dizeleri (alarmlar) yeniden ve hepsi aynı adı vardı.

İlgili konular