2011-01-08 9 views
0

Ich entwickle derzeit eine Anwendung auf Android.Ausführen einer Methode in einer Klasse, die keine Aktivität auf Android erweitert

Ich möchte eine Klasse, die die Datenbank und Tabellen in einem separaten von der Aktivität Bildschirm erstellt.

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

Die Klasse ist nicht Aktivität das heißt es ist nicht das einen Bildschirm zeigt, es geht nur bestimmte Methoden zu tun, die regelmäßig passieren müssen, damit ich nicht den Code zu wiederholen haben. Wie kann ich das machen. Es kommt immer wieder mit einer Null-Zeiger-Ausnahme

Antwort

2

Angenommen, Sie haben eine Klasse (die nicht aus dem Code-Snippet sichtbar ist). Wenn Sie eine Klasse haben, erstellen Sie einfach eine Instanz in der Activity-Klasse und rufen Sie die Methode auf.

Schnipsel wie folgt.

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

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