我有这样的源代码:
if (proses == 3) {
HistoryConnector dbkonek = new HistoryConnector(this);
dbkonek.open();
//CURSOR air
cursorSumberAir = dbkonek.getOneDataSumberAir(rowId);
cursorKegunaanAir = dbkonek.getOneDataKegunaanAir(rowId);
cursorSifatAir = dbkonek.getOneDataSifatAir(rowId);
cursorPerlakuanAir = dbkonek.getOneDataPerlakuanAir(rowId);
cursorPenyimpananAir = dbkonek.getOneDataPenyimpananAir(rowId);
cursorSanitasi = dbkonek.getOneDataSanitasi(rowId);
cursorSumberAir.moveToFirst();
cursorKegunaanAir.moveToFirst();
cursorSifatAir.moveToFirst();
cursorPerlakuanAir.moveToFirst();
cursorPenyimpananAir.moveToFirst();
cursorSanitasi.moveToFirst();
} else {
DatabaseConnector dbkonek = new DatabaseConnector(this);
dbkonek.open();
//CURSOR air
cursorSumberAir = dbkonek.getOneDataSumberAir(rowId);
cursorKegunaanAir = dbkonek.getOneDataKegunaanAir(rowId);
cursorSifatAir = dbkonek.getOneDataSifatAir(rowId);
cursorPerlakuanAir = dbkonek.getOneDataPerlakuanAir(rowId);
cursorPenyimpananAir = dbkonek.getOneDataPenyimpananAir(rowId);
cursorSanitasi = dbkonek.getOneDataSanitasi(rowId);
cursorSumberAir.moveToFirst();
cursorKegunaanAir.moveToFirst();
cursorSifatAir.moveToFirst();
cursorPerlakuanAir.moveToFirst();
cursorPenyimpananAir.moveToFirst();
cursorSanitasi.moveToFirst();
}
我想这样:如果proses == 3
然后dbkonek
创建新的HistoryConnector
。否则dbkonek
创建新的DatabaseConnector
,我怎么能做到这一点?因为当我像这样创建source时:
if (proses == 3) {
HistoryConnector dbkonek = new HistoryConnector(this);
dbkonek.open();
} else {
DatabaseConnector dbkonek = new DatabaseConnector(this);
dbkonek.open();
}
//CURSOR air
cursorSumberAir = dbkonek.getOneDataSumberAir(rowId);
cursorKegunaanAir = dbkonek.getOneDataKegunaanAir(rowId);
cursorSifatAir = dbkonek.getOneDataSifatAir(rowId);
cursorPerlakuanAir = dbkonek.getOneDataPerlakuanAir(rowId);
cursorPenyimpananAir = dbkonek.getOneDataPenyimpananAir(rowId);
cursorSanitasi = dbkonek.getOneDataSanitasi(rowId);
cursorSumberAir.moveToFirst();
cursorKegunaanAir.moveToFirst();
cursorSifatAir.moveToFirst();
cursorPerlakuanAir.moveToFirst();
cursorPenyimpananAir.moveToFirst();
cursorSanitasi.moveToFirst();
编辑,任何一个连接器像这样:
public class DatabaseConnector {
private static final String DB_NAME = "DataAssessment.db";
private SQLiteDatabase database;
private DatabaseOpenHelper dbOpenHelper;
public DatabaseConnector(Context context) {
dbOpenHelper = new DatabaseOpenHelper(context, DB_NAME, null, 1);
}
}
上面的源代码,dbkonek
无法在游标中检测。如何我可以简单这个源代码。
您的类层次结构必须设计成这样,即HistoryConnector
和DatabaseConnector
共享一个公共的基类或接口,假定称为Connector
,它定义了在任何类型的连接器上可用的操作集。然后你只需输入:
Connector dbkonek;
if(proses == 3){
dbkonek = new HistoryConnector(this);
}else{
dbkonek = new DatabaseConnector(this);
}
dbkonek.open();
...