如何从SQLiteOpenHelper访问StartActivityForResult()?

时间:2012-04-18 15:12:39

标签: java android oop android-activity

我想创建一个类来处理我的应用程序的图像处理。

为了实现这一点,扩展SQLiteOpenHelper是有意义的,因为它的大部分工作都是在数据库中完成的。

我的一个方法返回一个ViewGroup对象,我可以将它包含在几个更高级别的布局中。此ViewGroup包含一组图片和一个用于添加新图像的按钮。

当我想使用 startActivityForResult()操作处理按钮点击时出现问题 - 这是Activity类的一部分,在SQLiteOpenHelper中不可用类。

我接近这个错误吗?或者有没有办法可以从我的课程中访问startActivityForResult()(以及onActivityResult())?

4 个答案:

答案 0 :(得分:1)

  

扩展SQLiteOpenHelper以执行此操作

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

  

我接近这个错误吗?

Imo是的。用户事件逻辑是Activity的责任,因此它应该在那里或在你委派所有这些的类中。

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

答案 1 :(得分:0)

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

myActivity.startActivityForResult(...

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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