title: Android - there is no default constructor available
body: <p>I have a simple code which create an array list from an SQLite code this exists in another activity. I want to use the parameters from the other activity but keeping get the error :
  "There is no default constructor available in android.database.sqlite.SQliteOpenHelper".</p>
  
  <p>Can you please show me what i've missed ?</p>
  
  <p>Here is the first activity which turns the SQLite db to arraylist :</p>
  
  <p>GpsPage.java :</p>
  
  <pre><code> class myLocationListener implements LocationListener {
  
                  @Override
                  public void onLocationChanged(Location location) {
                      if (location != null) {
                          double pLong = location.getLongitude();
                          double pLat = location.getLatitude();
                          float pAcc = location.getAccuracy();
                          long pTime = location.getTime();
                          textLat.setText(Double.toString(pLat));
                          textLong.setText(Double.toString(pLong));
                          db.addRecord(new Record(pLong, pLat, pAcc, pTime));
  
                          class PersonsDatabaseHandler extends   SQLiteOpenHelper {
  
  
  
                              //Database Name
                              private static final String DATABASE_NAME = "RecordsDB";
                              private static final String TABLE_RECORD = "record";
  
                              //Table names
                          //    private static final TABLE_RECORD = "records";
  
                              //Get all Persons
                               ArrayList&lt;Record&gt; getAllPersons() {
                                  ArrayList&lt;Record&gt; localList = new ArrayList&lt;Record&gt;();
  
                                  String selectQuery = "SELECT * FROM " + TABLE_RECORD;
  
                                  SQLiteDatabase db = this.getReadableDatabase();
                                  Cursor cursor = db.rawQuery(selectQuery, null);
  
                                  //Loops through all rows and adds them to the local list
                                  if(cursor.moveToFirst())
                                  {
                                      do {
                                          //Get person information
                                          Record record = new Record();
                                          record.setpLong(cursor.getDouble(0));
                                          record.setpLat(cursor.getDouble(1));
                                          record.setpAcc(cursor.getFloat(2));
                                          record.setpTime(cursor.getLong(3));
  
                                          //Add person to list
                                          localList.add(record);
                                      } while (cursor.moveToNext());
                                  }
  
                                  return localList;
  </code></pre>
  
  <p>And here is the second activity which the DB located :</p>
  
  <p>MySQLiteHelper.java :</p>
  
  <pre><code>public class MySQLiteHelper extends SQLiteOpenHelper {
  
  
      // Database Version
      private static final int DATABASE_VERSION = 1;
  
      // Database Name
      private static final String DATABASE_NAME = "RecordsDB";
  
      public MySQLiteHelper(Context context) {
          super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }
  
      @Override
      public void onCreate(SQLiteDatabase db) {
          // SQL statement to create record table
          String CREATE_RECORD_TABLE = "CREATE TABLE RECORD ( " +
                  "id INTEGER PRIMARY KEY AUTOINCREMENT, " +
                  "latitude TEXT NOT NULL, " +
                  "longtitude TEXT NOT NULL, " +
                  "accuracy TEXT NOT NULL, " +
                  "time TEXT NOT NULL )";
  
          // create books table
          db.execSQL(CREATE_RECORD_TABLE);
      }
  
  
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
          // Drop older books table if existed
          db.execSQL("DROP TABLE IF EXISTS RECORD");
  
          // create fresh record table
          this.onCreate(db);
      }
  
      // Books table name
      private static final String TABLE_RECORD = "record";
  
      // Books Table Columns names
      private static final String KEY_ID = "id";
      private static final String KEY_LONG = "longtitude";
      private static final String KEY_LAT = "latitude";
      private static final String KEY_ACC = "accuracy";
      private static final String KEY_TIME = "time";
  
      private static final String[] COLUMNS = {KEY_ID, KEY_LONG, KEY_LAT, KEY_ACC, KEY_TIME};
  
      public void addRecord(Record record) {
          //for logging
          Log.d("addRecord", record.toString());
  
          // 1. get reference to writable DB
          SQLiteDatabase db = this.getWritableDatabase();
  
          // 2. create ContentValues to add key "column"/value
          ContentValues values = new ContentValues();
          values.put(KEY_LONG, record.getpLong());
          values.put(KEY_LAT, record.getpLat());
          values.put(KEY_ACC, record.getpAcc());
          values.put(KEY_TIME, record.getpTime());
  
          // 3. insert
          db.insert(TABLE_RECORD, // table
                  null, //nullColumnHack
                  values); // key/value -&gt; keys = column names/ values = column values
  
          // 4. close
          db.close();
      }
  
      public Record getRecord(int id) {
  
          // 1. get reference to readable DB
          SQLiteDatabase db = this.getReadableDatabase();
  
          // 2. build query
          Cursor cursor =
                  db.query(TABLE_RECORD, // a. table
                          COLUMNS, // b. column names
                          " id = ?", // c. selections
                          new String[]{String.valueOf(id)}, // d. selections args
                          null, // e. group by
                          null, // f. having
                          null, // g. order by
                          null); // h. limit
  
          // 3. if we got results get the first one
          if (cursor != null)
              cursor.moveToFirst();
  
          // 4. build book object
          Record record = new Record();
          record.setID(Integer.parseInt(cursor.getString(0)));
          record.setpLat(cursor.getDouble(1));
          record.setpLong(cursor.getDouble(2));
          record.setpAcc(cursor.getFloat(2));
          record.setpTime(cursor.getLong(2));
  
          //log
          Log.d("getBook(" + id + ")", record.toString());
  
          // 5. return book
          return record;
      }
  
      public List&lt;Record&gt; getAllRecords() {
          List&lt;Record&gt; records = new LinkedList&lt;Record&gt;();
  
          // 1. build the query
          String query = "SELECT  * FROM " + TABLE_RECORD;
  
          // 2. get reference to writable DB
          SQLiteDatabase db = this.getWritableDatabase();
          Cursor cursor = db.rawQuery(query, null);
  
          // 3. go over each row, build book and add it to list
          Record record = null;
          if (cursor.moveToFirst()) {
              do {
                  record = new Record();
                  record.setID(Integer.parseInt(cursor.getString(0)));
                  record.setpLat(cursor.getDouble(1));
                  record.setpLong(cursor.getDouble(2));
                  record.setpAcc(cursor.getFloat(2));
                  record.setpTime(cursor.getLong(2));
  
  
                  // Add book to books
                  records.add(record);
              } while (cursor.moveToNext());
          }
  
          Log.d("getAllRecords()", record.toString());
  
          // return books
          return records;
      }
  
      public int UpdateRecords(Record record) {
  
          // 1. get reference to writable DB
          SQLiteDatabase db = this.getWritableDatabase();
  
          // 2. create ContentValues to add key "column"/value
          ContentValues values = new ContentValues();
          values.put("Latitude", record.getpLat()); //
          values.put("Longtitude", record.getpLong());
          values.put("Accuracy", record.getpAcc());
          values.put("Time", record.getpTime());
  
          // 3. updating row
          int i = db.update(TABLE_RECORD, //table
                  values, // column/value
                  KEY_ID + " = ?", // selections
                  new String[]{String.valueOf(record.getID())}); //selection args
  
          // 4. close
          db.close();
  
          return i;
  
      }
  
      public void deleteRecords(Record record) {
  
          // 1. get reference to writable DB
          SQLiteDatabase db = this.getWritableDatabase();
  
          // 2. delete
          db.delete(TABLE_RECORD, //table name
                  KEY_ID + " = ?",  // selections
                  new String[]{String.valueOf(record.getID())}); //selections args
  
          // 3. close
          db.close();
  
          //log
          Log.d("deleteBook", record.toString());
  
      }
  </code></pre>