1

我想获取一个打开的数据库的名称,我通过SqliteOpenHelper. API 级别 14 ( ) 没有问题getDatabasename。但我需要它与 API 级别 10 一起工作(硬要求——这是针对我正在学习的课程)。

到目前为止,我提出的唯一想法是自己存储数据库名称以供将来使用——无论是在我需要它的类中,还是作为SqliteOpenHelper. 有没有更好的办法?谢谢。

4

2 回答 2

2

getDatabaseName()返回您在构造函数中提供的完全相同的名称SqliteOpenHelper,因此最好将其存储在子类的成员变量中。如果以后您有另一个遇到相同问题的项目,它将更加灵活。

于 2013-04-20T21:53:55.897 回答
1

但是自从您打开数据库并将其传递给 SqliteOpenHelper 的构造函数后,您是否已经有了数据库名称?所以只需继承 SqliteOpenHelper 并自己创建方法 getDatabaseName() 并让它做你想做的事。这似乎更多地是关于面向对象的原则。如果您需要代码或我弄错了,请告诉我。

我grep了代码。您要查找的函数只是存储您在构造函数中设置的变量:

公共字符串 getDatabaseName() { 返回 mName; }

所以再次制作自己的 http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.1_r1.2/android/database/sqlite/SQLiteOpenHelper.java#SQLiteOpenHelper .getDatabaseName%28%29

于 2013-04-20T22:50:56.833 回答