我目前正在开发一个Android应用程序。
我想要一个创建数据库和表的类,它与Activity屏幕分开。
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());
}
}
该类不是活动,即它没有显示屏幕,它只是要做某些需要定期进行的方法,所以我没有重复代码。我怎样才能做到这一点。它继续提出空指针异常
答案 0 :(得分:2)
假设你有一个类(从代码片段中看不到)。如果您有一个类,只需在Activity类中创建一个实例并调用该方法。
摘录如下。
public class MyDBHelper extends SQLiteOpenHelper {
public void createDatabase() { ......}
.....
}
public class MyActivity extends Activity {
private MyDBHelper mDBHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
........
mDBHelper.createDatabase();
}
............
}