2012-12-26 5 views
-1

J'ai le code source comme ceci:Déclaration 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(); 
} 

Je veux ceci: Si proses == 3 puis dbkonek Créer un nouveau HistoryConnector. d'autre dbkonek créer nouveau DatabaseConnector, comment je pourrais y parvenir? Parce que quand je fais source comme ceci:

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(); 

modifié, tout un connecteur comme ceci:

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); 
    } 
} 
code source

ci-dessus, dbkonek ne peut pas détecter dans le curseur. comment je peux être simple ce code source. Merci pour l'avance

+1

Trop de code (plus que nécessaire), langue étrangère, dans l'ensemble une question vraiment peu claire ... Qu'est-ce que vous devez faire? –

+0

je veux référence dbkonek à la nouvelle classe HistoryConnect ou DatabaseConnector, D'abord, je dois être déclaré variable dbkonek, comment je peux déclarer dbkonek. avant la déclaration. – pwcahyo

+0

Je vois, 'HistoryConnector' et' DatabaseConnector' partagent-ils une _base class_ ou une _interface_? –

Répondre

1

Votre hiérarchie de classes doit être conçu de telle sorte que HistoryConnector et DatabaseConnector parts une classe de base commune ou l'interface, vraisemblablement appelé Connector, qui définit l'ensemble des opérations qui sont disponibles sur tout type de Connecteur. Alors vous feriez simplement:

Connector dbkonek; 
if(proses == 3){ 
    dbkonek = new HistoryConnector(this); 
}else{ 
    dbkonek = new DatabaseConnector(this); 
} 
dbkonek.open(); 
...