2011-01-08 5 views
0

Je développe actuellement une application sur android.Exécution d'une méthode dans une classe qui ne prolonge pas une activité sur android

Je voudrais une classe qui crée la base de données et les tables dans un séparé de l'écran d'activité.

public void createDatabase() 
    { 
     try 
     { 
      SQLiteDatabase myDB; 
      myDB = this.openOrCreateDatabase("PasswordManager", Context.MODE_PRIVATE, null); 

      myDB.execSQL("CREATE TABLE IF NOT EXISTS `users` (`use_userID` int(11) NOT NULL, `use_username` varchar(25) DEFAULT NULL," + 
        "`use_usePassword` char(1) DEFAULT NULL, `use_password` varchar(150) DEFAULT NULL, PRIMARY KEY (`use_userID`))"); 

      myDB.execSQL("CREATE TABLE IF NOT EXISTS `password` (`pas_loginID` int(11) NOT NULL, `pas_userID` int(11) DEFAULT NULL," + 
        "`pas_company` varchar(50) NOT NULL, `pas_companyURL` varchar(250) DEFAULT NULL, `pas_username` " + 
        "varchar(150) NOT NULL, `pas_password` varchar(150) NOT NULL, `pas_type` varchar(50) NOT NULL, " + 
        "PRIMARY KEY (`pas_loginID`))"); 
     } 
     catch (SQLiteException sqlEx) 
     { 
      Log.d("Database Error", sqlEx.toString()); 
     } 
     catch (Exception ex) 
     { 
      Log.d("General Error", ex.toString()); 
     } 
    } 

La classe n'est pas une activité à-dire qu'elle ne montre pas un écran, il va tout simplement faire certaines méthodes qui devront se produire régulièrement, donc je n'ai pas à répéter le code. Comment puis-je faire ceci. Il continue à venir avec une exception de pointeur nul

Répondre

2

Supposons que vous avez une classe (qui n'est pas visible à partir de l'extrait de code). Si vous avez une classe, créez simplement une instance dans la classe Activity et appelez la méthode.

extrait comme suit.

public class MyDBHelper extends SQLiteOpenHelper { 
    public void createDatabase() { ......} 
..... 
} 

public class MyActivity extends Activity { 
    private MyDBHelper mDBHelper; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
     ........ 
     mDBHelper.createDatabase(); 
    } 
............ 
} 
Questions connexes