android activity 传递数据库,android – 在非Activity类中访问数据库

我有一些类(SomeClass.class).我想在其中有一些静态方法,如getAll

DatabaseItems,getTableItems,insertNewRecord等.

如果我这样做的话

SQLiteDatabase db = openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null);

>我需要扩展Activity(但仍然不能在静态方法中使用它)或在每个单独的方法(来自“调用者活动”)中传递“db”变量,这是非常笨重的.

什么是解决方案,所以我可以从一些类调用SomeClass.getAllDatabaseItems()?

@ MobileDev123所以我仍然需要扩展Activity(因为openOrCreateDatabase方法)?

如果我有这个类(实际上不是一个活动,我不会那样使用它)

public class Partner extends Activity {

@SuppressWarnings("static-access")

public Partner(Context mContext) {

myContext = mContext;

db = openOrCreateDatabase(DATABASE_NAME, myContext.MODE_PRIVATE, null);

db.execSQL("CREATE TABLE IF NOT EXISTS " + PARTNER_TABLE_NAME + " (id INTEGER PRIMARY KEY AUTOINCREMENT, " + NAME + " VARCHAR);");

db.execSQL("CREATE TABLE IF NOT EXISTS " + ADDRESS_TABLE_NAME + " (id INTEGER PRIMARY KEY AUTOINCREMENT, " + PARTNER_ID + " INT, " + ADDRESS + " VARCHAR, " + CITY + " VARCHAR);");

}

然后从我的一些活动中调用它

Partner newPartner = new Partner(this);

partnersItems = newPartner.getAllItems();

我在第4行得到NullExceptionError(Partner.class) – 为什么?如果我使用静态参考

MODE_PRIVATE => (Context.MODE_PRIVATE)

再次它不起作用.

@Falmarri与static相同,如果我传入“this”参数(来自某个调用者类)并在静态方法中将其作为Context参数接收仍然无法成功创建/打开我的数据库(请参阅前面的行)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值