Android Statement Sqlite Cursor

时间:2012-12-26 04:15:41

标签: android sqlite cursor

我有这样的源代码:

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,我是如何实现这一目标的? 因为当我做这样的来源时:

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无法在游标中检测到。我怎么可以简单这个源代码。 谢谢你提前

1 个答案:

答案 0 :(得分:1)

您的类层次结构必须设计为HistoryConnectorDatabaseConnector共享一个公共基类接口,大概称为{{1定义任何类型的 Connector 上可用的操作集。然后你会做:

Connector