在不扩展android上的活动的类中运行方法

时间:2011-01-08 23:24:39

标签: android

我目前正在开发一个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());
        }
    }

该类不是活动,即它没有显示屏幕,它只是要做某些需要定期进行的方法,所以我没有重复代码。我怎样才能做到这一点。它继续提出空指针异常

1 个答案:

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