mardi 7 avril 2015

android passing variables from inside database class

I am trying to pass some values that i get from inside database(that extends sqliteOpenHelper) to another class. However i am using a cursor to get the data from that database which giving null values to other activities.


Here is my Database: it has default values inside it , inserted



public class DatabaseMaster extends SQLiteOpenHelper {
SQLiteDatabase db;

private static final String LOG = "DatabaseHelper";
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "Rates";

// Table Names

public static final String KEY_ER_ID = "er_id";
public static final String KEY_ER_USEDORNEW = "Used_or_New";
public static final String KEY_ER_TENOR = "ER_tenor";
public static final String KEY_ER_RATE = "ER_rate";
// Asuransi rate
public static final String KEY_AS_ID = "as_id";
public static final String KEY_AS_REGIONAL = "regional";
public static final String KEY_AS_TENOR = "AS_tenor";
public static final String KEY_AS_TLO = "TLO";
public static final String KEY_AS_COMPREHENSIVE = "Comprehensive";
public static final String KEY_AS_COMBINE = "Combine";

public static final String TABLE_EFFECTIVE_RATE = "effective_rate";
public static final String TABLE_ASURANSI_RATE = "asuransi_rate";

public DatabaseMaster(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub

try {
db.beginTransaction();

db.execSQL("CREATE TABLE " + TABLE_EFFECTIVE_RATE + " ("
+ KEY_ER_ID + " INTEGER PRIMARY KEY, " + KEY_ER_USEDORNEW
+ " TEXT NOT NULL, " + KEY_ER_TENOR + " INTEGER,"
+ KEY_ER_RATE + " REAL)");

db.execSQL("CREATE TABLE " + TABLE_ASURANSI_RATE + " (" + KEY_AS_ID
+ " INTEGER PRIMARY KEY, " + KEY_AS_REGIONAL + " INTEGER, "
+ KEY_AS_TENOR + " INTEGER," + KEY_AS_TLO + " REAL,"
+ KEY_AS_COMPREHENSIVE + " REAL," + KEY_AS_COMBINE
+ " REAL)");

// Inserts pre-defined departments
InsertERs(db);
insertASs(db);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

db.execSQL("DROP TABLE IF EXISTS " + TABLE_EFFECTIVE_RATE);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_ASURANSI_RATE);
// db.execSQL("DROP TRIGGER IF EXISTS er_id_trigger");
// db.execSQL("DROP TRIGGER IF EXISTS er_id_trigger22");

// db.execSQL("DROP TRIGGER IF EXISTS as_id_trigger");
// db.execSQL("DROP TRIGGER IF EXISTS as_id_trigger22");

onCreate(db);

}

void AddERrate(EntryEffectiveRate EER) {

SQLiteDatabase db = this.getWritableDatabase();

ContentValues valuesER = new ContentValues();
valuesER.put(KEY_ER_ID, EER.getERId());
valuesER.put(KEY_ER_USEDORNEW, EER.getERKondisi());
valuesER.put(KEY_ER_TENOR, EER.getERTenor());
valuesER.put(KEY_ER_RATE, EER.getERrate());
// values.put(KEY_CREATED_AT, getDateTime());

// insert row
// long er_id =
db.insert(TABLE_EFFECTIVE_RATE, null, valuesER);
// db.close();
// return er_id;

}

int getERCount() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cur = db.rawQuery("Select * from " + TABLE_EFFECTIVE_RATE, null);
int x = cur.getCount();
cur.close();
return x;
}

Cursor getAllERates() {
SQLiteDatabase db = this.getWritableDatabase();

// Cursor cur=
// db.rawQuery("Select "+colID+" as _id , "+colName+", "+colAge+" from "+employeeTable,
// new String [] {});
// Cursor cur= db.rawQuery("SELECT * FROM "+viewEmps,null);
Cursor cur = db.rawQuery("Select " + KEY_ER_ID + " as _id, "
+ KEY_ER_USEDORNEW + ", " + KEY_ER_TENOR + ", " + KEY_ER_RATE
+ ", " + " from " + TABLE_EFFECTIVE_RATE, new String[] {});
cur.close();
return cur;

}

public List<EntryEffectiveRate> getAllEffectiveRates() {
List<EntryEffectiveRate> EffectiveRates = new ArrayList<EntryEffectiveRate>();
String selectQuery = "SELECT * FROM " + TABLE_EFFECTIVE_RATE;

Log.e(LOG, selectQuery);

SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);

// looping through all rows and adding to list
if (c.moveToFirst()) {
do {
EntryEffectiveRate ergt = new EntryEffectiveRate();
ergt.setERId(c.getInt(c.getColumnIndex(KEY_ER_ID)));
ergt.setERKondisi(c.getString(c
.getColumnIndex(KEY_ER_USEDORNEW)));
ergt.setERTenor(c.getInt(c.getColumnIndex(KEY_ER_TENOR)));
ergt.setERRate(c.getDouble(c.getColumnIndex(KEY_ER_RATE)));

// add
EffectiveRates.add(ergt);
} while (c.moveToNext());
}
// db.close();
c.close();
return EffectiveRates;
}

public int updateEntryEffectiveRate(EntryEffectiveRate er) {
SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(KEY_ER_ID, er.getERId());
values.put(KEY_ER_USEDORNEW, er.getERKondisi());
values.put(KEY_ER_TENOR, er.getERTenor());
values.put(KEY_ER_RATE, er.getERrate());
// values.put(KEY_CREATED_AT, getDateTime());

// updating row
return db.update(TABLE_EFFECTIVE_RATE, values, KEY_ER_ID + " = ?",
new String[] { String.valueOf(er.getERId()) });
}

//
public void deleteEntryEffectiveRate(long er_id) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_EFFECTIVE_RATE, KEY_ER_ID + " = ?",
new String[] { String.valueOf(er_id) });
}

void AddASrate(EntryAsuransiRate EAR) {

SQLiteDatabase db = this.getWritableDatabase();

ContentValues valuesAS = new ContentValues();
valuesAS.put(KEY_AS_ID, EAR.getASId());
valuesAS.put(KEY_AS_REGIONAL, EAR.getASzona());
valuesAS.put(KEY_AS_TENOR, EAR.getAStenor());
valuesAS.put(KEY_AS_TLO, EAR.getAStlo());
valuesAS.put(KEY_AS_COMPREHENSIVE, EAR.getAScomp());
valuesAS.put(KEY_AS_COMBINE, EAR.getAScomb());
// values.put(KEY_CREATED_AT, getDateTime());

// insert row
// long er_id =
db.insert(TABLE_ASURANSI_RATE, null, valuesAS);
// db.close();
// return er_id;

}

Cursor getAllASrates() {
SQLiteDatabase db = this.getWritableDatabase();

Cursor cur = db.rawQuery("Select " + KEY_AS_ID + " as _id, "
+ KEY_AS_REGIONAL + ", " + KEY_AS_TENOR + ", " + KEY_AS_TLO
+ ", " + KEY_AS_COMPREHENSIVE + ", " + KEY_AS_COMBINE + ", "
+ " from " + TABLE_ASURANSI_RATE, new String[] {});
cur.close();
return cur;
}

int getASCount() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cur = db.rawQuery("Select * from " + TABLE_ASURANSI_RATE, null);
int x = cur.getCount();
cur.close();
return x;
}

public List<EntryAsuransiRate> getAllAsuransiRates() {
List<EntryAsuransiRate> AsuransiRates = new ArrayList<EntryAsuransiRate>();
String selectQuery = "SELECT * FROM " + TABLE_ASURANSI_RATE;

Log.e(LOG, selectQuery);

SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);

// looping through all rows and adding to list
if (c.moveToFirst()) {
do {

EntryAsuransiRate asgt = new EntryAsuransiRate();
asgt.setASId(c.getInt(c.getColumnIndex(KEY_AS_ID)));
asgt.setASzona(c.getInt(c.getColumnIndex(KEY_AS_REGIONAL)));
asgt.setAStenor(c.getInt(c.getColumnIndex(KEY_AS_TENOR)));
asgt.setAStlo(c.getDouble(c.getColumnIndex(KEY_AS_TLO)));
asgt.setAScomp(c.getDouble(c
.getColumnIndex(KEY_AS_COMPREHENSIVE)));
asgt.setAScomb(c.getDouble(c.getColumnIndex(KEY_AS_COMBINE)));
// add
AsuransiRates.add(asgt);
} while (c.moveToNext());
}
// db.close();
c.close();
return AsuransiRates;
}

public int updateEntryAsuransiRate(EntryAsuransiRate EAR) {
SQLiteDatabase db = this.getWritableDatabase();

ContentValues valuesAS = new ContentValues();
valuesAS.put(KEY_AS_ID, EAR.getASId());
valuesAS.put(KEY_AS_REGIONAL, EAR.getASzona());
valuesAS.put(KEY_AS_TENOR, EAR.getAStenor());
valuesAS.put(KEY_AS_TLO, EAR.getAStlo());
valuesAS.put(KEY_AS_COMPREHENSIVE, EAR.getAScomp());
valuesAS.put(KEY_AS_COMBINE, EAR.getAScomb());
// values.put(KEY_CREATED_AT, getDateTime());

// updating row
return db.update(TABLE_ASURANSI_RATE, valuesAS, KEY_AS_ID + " = ?",
new String[] { String.valueOf(EAR.getASId()) });
}

//
public void deleteEntryAsuransiRate(long as_id) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_ASURANSI_RATE, KEY_AS_ID + " = ?",
new String[] { String.valueOf(as_id) });
}

void InsertERs(SQLiteDatabase db) {
try {
db.beginTransaction();
ContentValues cv = new ContentValues();

cv.put(KEY_ER_ID, 1);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 12);
cv.put(KEY_ER_RATE, 12.1);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 2);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 24);
cv.put(KEY_ER_RATE, 12.2);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 3);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 36);
cv.put(KEY_ER_RATE, 12.3);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 4);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 48);
cv.put(KEY_ER_RATE, 12.4);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 5);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 60);
cv.put(KEY_ER_RATE, 12.5);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 6);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 12);
cv.put(KEY_ER_RATE, 12.6);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 7);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 24);
cv.put(KEY_ER_RATE, 12.7);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 8);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 36);
cv.put(KEY_ER_RATE, 12.8);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 9);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 48);
cv.put(KEY_ER_RATE, 12.9);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);

cv.put(KEY_ER_ID, 10);
cv.put(KEY_ER_USEDORNEW, "Baru");
cv.put(KEY_ER_TENOR, 60);
cv.put(KEY_ER_RATE, 13);
db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);
// db.insert(TABLE_EFFECTIVE_RATE, KEY_ER_ID, cv);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
// db.close();

}

void insertASs(SQLiteDatabase db) {
try {
db.beginTransaction();

ContentValues cv = new ContentValues();

cv.put(KEY_AS_ID, 1);
cv.put(KEY_AS_REGIONAL, 1);
cv.put(KEY_AS_TENOR, 12);
cv.put(KEY_AS_TLO, 1.00);
cv.put(KEY_AS_COMPREHENSIVE, 2.00);
cv.put(KEY_AS_COMBINE, 3.00);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 2);
cv.put(KEY_AS_REGIONAL, 1);
cv.put(KEY_AS_TENOR, 24);
cv.put(KEY_AS_TLO, 1.01);
cv.put(KEY_AS_COMPREHENSIVE, 2.01);
cv.put(KEY_AS_COMBINE, 3.01);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 3);
cv.put(KEY_AS_REGIONAL, 1);
cv.put(KEY_AS_TENOR, 36);
cv.put(KEY_AS_TLO, 1.02);
cv.put(KEY_AS_COMPREHENSIVE, 2.02);
cv.put(KEY_AS_COMBINE, 3.02);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 4);
cv.put(KEY_AS_REGIONAL, 1);
cv.put(KEY_AS_TENOR, 48);
cv.put(KEY_AS_TLO, 1.03);
cv.put(KEY_AS_COMPREHENSIVE, 2.03);
cv.put(KEY_AS_COMBINE, 3.03);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 5);
cv.put(KEY_AS_REGIONAL, 1);
cv.put(KEY_AS_TENOR, 60);
cv.put(KEY_AS_TLO, 1.04);
cv.put(KEY_AS_COMPREHENSIVE, 2.04);
cv.put(KEY_AS_COMBINE, 3.04);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 6);
cv.put(KEY_AS_REGIONAL, 2);
cv.put(KEY_AS_TENOR, 12);
cv.put(KEY_AS_TLO, 1.05);
cv.put(KEY_AS_COMPREHENSIVE, 2.05);
cv.put(KEY_AS_COMBINE, 3.05);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 7);
cv.put(KEY_AS_REGIONAL, 2);
cv.put(KEY_AS_TENOR, 24);
cv.put(KEY_AS_TLO, 1.06);
cv.put(KEY_AS_COMPREHENSIVE, 2.06);
cv.put(KEY_AS_COMBINE, 3.06);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 8);
cv.put(KEY_AS_REGIONAL, 2);
cv.put(KEY_AS_TENOR, 36);
cv.put(KEY_AS_TLO, 1.07);
cv.put(KEY_AS_COMPREHENSIVE, 2.07);
cv.put(KEY_AS_COMBINE, 3.07);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 9);
cv.put(KEY_AS_REGIONAL, 2);
cv.put(KEY_AS_TENOR, 48);
cv.put(KEY_AS_TLO, 1.08);
cv.put(KEY_AS_COMPREHENSIVE, 2.08);
cv.put(KEY_AS_COMBINE, 3.08);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 10);
cv.put(KEY_AS_REGIONAL, 2);
cv.put(KEY_AS_TENOR, 60);
cv.put(KEY_AS_TLO, 1.09);
cv.put(KEY_AS_COMPREHENSIVE, 2.09);
cv.put(KEY_AS_COMBINE, 3.09);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 11);
cv.put(KEY_AS_REGIONAL, 3);
cv.put(KEY_AS_TENOR, 12);
cv.put(KEY_AS_TLO, 1.10);
cv.put(KEY_AS_COMPREHENSIVE, 2.10);
cv.put(KEY_AS_COMBINE, 3.10);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 12);
cv.put(KEY_AS_REGIONAL, 3);
cv.put(KEY_AS_TENOR, 24);
cv.put(KEY_AS_TLO, 1.11);
cv.put(KEY_AS_COMPREHENSIVE, 2.11);
cv.put(KEY_AS_COMBINE, 3.11);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);
cv.put(KEY_AS_ID, 13);
cv.put(KEY_AS_REGIONAL, 3);
cv.put(KEY_AS_TENOR, 36);
cv.put(KEY_AS_TLO, 1.12);
cv.put(KEY_AS_COMPREHENSIVE, 2.12);
cv.put(KEY_AS_COMBINE, 3.12);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 14);
cv.put(KEY_AS_REGIONAL, 3);
cv.put(KEY_AS_TENOR, 48);
cv.put(KEY_AS_TLO, 1.13);
cv.put(KEY_AS_COMPREHENSIVE, 2.13);
cv.put(KEY_AS_COMBINE, 3.13);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

cv.put(KEY_AS_ID, 15);
cv.put(KEY_AS_REGIONAL, 3);
cv.put(KEY_AS_TENOR, 60);
cv.put(KEY_AS_TLO, 1.14);
cv.put(KEY_AS_COMPREHENSIVE, 2.14);
cv.put(KEY_AS_COMBINE, 3.14);
db.insert(TABLE_ASURANSI_RATE, KEY_AS_ID, cv);

db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
// db1.close();
}

public Cursor getERValues(int index) {

String from[] = { "KEY_ER_USEDORNEW", "KEY_ER_TENOR", "KEY_ER_RATE" };
String where = DatabaseMaster.KEY_ER_ID + "=?";
String[] whereArgs = new String[] { index + "" };
Cursor cursor = db.query(DatabaseMaster.TABLE_EFFECTIVE_RATE, from,
where, whereArgs, null, null, null, null);
return cursor;
}

class DataHandler extends Activity {

public void getData(int id) {

Cursor c = getERValues(id);

if (c != null) {
while (c.moveToNext()) {
String UorN = c.getString(c.getColumnIndex("Used_or_New"));
int er_t = c.getInt(c.getColumnIndex("ER_tenor"));
double er_r = c.getDouble(c.getColumnIndex("ER_rate"));

// use these strings as you want
Intent Person = new Intent(this, MediatorMaster.class);
Person.putExtra("Used_or_New", UorN);
Person.putExtra("ER_tenor", er_t);
Person.putExtra("ER_rate", er_r);
startActivity(Person);
}
}
}
}

// closing database
public void closeDB() {
SQLiteDatabase db = this.getReadableDatabase();
if (db != null && db.isOpen())
db.close();
}

@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
if (!db.isReadOnly()) {
// Enable foreign key constraints
db.execSQL("PRAGMA foreign_keys=ON;");
}

}

}


The other that suppose to display the data that sent via intent:



public class MediatorMaster extends Activity {

@Override
protected void onCreate(Bundle unpack) {
// TODO Auto-generated method stub
super.onCreate(unpack);
setContentView(R.layout.test);

unpack = getIntent().getExtras();
//for(){
if (unpack != null) {
String UorN = unpack.getString("Used_or_New");
//int er_t = unpack.getInt("er_t");
//double er_r = unpack.getDouble("er_r");


Message.message(this, "Result :"+ UorN + " " /*+ er_t + " " + er_r*/);
}
else {
Message.message(this, "unread datas");
}


// }
}
}


when it runs it will give message "unread datas". I want to pass all inserted datas to new activity that later then will be calculated. How to do that? any suggestion?


thanks in advance


Aucun commentaire:

Enregistrer un commentaire