0

我想创建一个类来处理与我的应用程序的图像有关的所有事情。

为此扩展 SQLiteOpenHelper 是有意义的,因为它的大部分工作都是在数据库中完成的。

我的一种方法返回一个 ViewGroup 对象,我可以将其合并到几个更高级别的布局中。这个 ViewGroup 包含一组图片和一个添加新图片的按钮。

当我想使用startActivityForResult()操作处理按钮单击时,我的问题就出现了——它是 Activity 类的一部分,在 SQLiteOpenHelper 类中不可用

我接近这个错误吗? 或者有没有办法从我的班级中访问 startActivityForResult() (和 onActivityResult())?

4

4 回答 4

1

扩展 SQLiteOpenHelper 来做到这一点

该类将只打开您的数据库文件(并创建您需要的表),仅此而已。您应该编写另一个数据库处理类,该类使用 open[ing]Helper 类打开数据库,并在数据库中执行所有插入/更新。

我接近这个错误吗?

海事组织 是的。用户事件逻辑是 Activity 的责任,所以它应该在那里或在你委托所有这些的类中。

应该从那里使用数据库功能 - 最好是异步的。

于 2012-04-18T15:22:56.090 回答
0

这似乎可以通过将Activity作为参数传递给类,然后使用:

我的Activity.startActivityForResult(...

于 2012-04-20T19:28:16.243 回答
0

正如布伦特所说,并getParent()作为参数传递给您的方法。

于 2013-05-17T03:27:55.567 回答
0

最好将您正在做的事情分开扩展活动而不是 SQLiteOpenHelper,并让另一个类说 MyDatabase 扩展 SQLiteOpenHelper 在此类中拥有所有数据库内容,并在您的活动中为任何数据库通信创建一个对象,这将更好地处理并做出改变。

于 2013-05-17T06:30:13.657 回答