-1

私はこのようなソースコードを持っています:

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。そうでなければdbkoneknew を作成します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、カーソルで検出できません。このソースコードを簡単にする方法。前もってありがとう

4

1 に答える 1

1

クラス階層は、おそらく と呼ばれる共通の基本クラスまたはインターフェイスHistoryConnectorDatabaseConnector共有するように設計する必要があります。これは、任意のタイプのコネクタで使用できる一連の操作を定義します。次に、次のようにします。Connector

Connector dbkonek;
if(proses == 3){
    dbkonek = new HistoryConnector(this);
}else{  
    dbkonek = new DatabaseConnector(this);
}
dbkonek.open();
...
于 2012-12-26T04:31:27.970 に答える