草庐IT

android - 不确定如何将 Cursor 转换为该方法的返回类型

我在这里很困惑。所以也许有人可以为我提供一些启示。我有一个看似简单的模式(下面的完整代码),但我收到编译器错误提示error:NotsurehowtoconvertaCursortothismethod'sreturntype.有什么问题?我在room_version="2.1.0-alpha02"@Entity(tableName="big_dog")classBigDog(valbig:Boolean,@PrimaryKeyvalid:Int=1)@DaointerfaceBigDogDao{@Insert(onConflict=OnConflictStrategy.REPLACE

android - 为什么我的 Cursor 在 Android Activity 中没有关闭?

在我的AndroidActivity中,我需要从数据库中读取内容。我创建了一个帮助程序类来处理我的数据库访问。这个助手类有几种不同的方法,旨在读取不同的东西并毫不费力地返回它们。这是一个例子。publicStringGetName(intid){StringtoReturn=null;Cursorcursor=null;try{cursor=db.query(TABLE_NAME,newString[]{"name"},"id="+id,null,null,null,null,null);assert(cursor.getCount()==1);cursor.moveToFirst()

java - NPE : CursorTreeAdapter$MyCursorHelper. changeCursor(Cursor, boolean)' 在空对象引用上

我试图从我的数据库中获取不同游标中的数据,并将其显示在按组分隔的ExpandableListView中。像下面这样:历史任务(到光标0)历史1历史2地理任务(到光标1)地理1地理2外语任务(到光标2)外语1外语2我正在尝试使用CursorTreeAdapter来做到这一点,因为我的所有信息都在数据库中,它可以管理不同的游标并在ExpandableListView中正确显示信息。我遇到的问题是,我在代码的某个位置遇到了NPE,但我无法检查它在哪里调试,因为它直接更改到另一个文件而不知道发生了什么。当我在CursorTreeAdapter::setChildrenCursor方法中调试时,

Android:Cursor.getColumnIndex() 在行循环中是否不变?

看起来android.database.Cursor.getColumnIndex(String)应该在行循环中保持不变。但我看到大量代码在做类似的事情:try(Cursorcursor=database.query(...)){while(cursor.moveToNext()){StringaString=cursor.getString(cursor.getColumnIndex(aColumnName));//...otherloopcodeandmorerepeateduseofgetColumnIndex()}}除非getColumnIndex()的结果真的可以随着对cur

android - 在 Android SQLite 中,直接使用 Cursor 比创建模型对象更节省内存?

在大多数Android示例代码中,通过两种方式从SQLite数据库填充ListView,PrefetchdatatoList-执行查询,为每一行创建Model对象,然后将其添加到List并关闭光标,然后用List填充ListView。没有List和Model对象-使用moveToFirst跟随Cursor执行查询并填充ListView>、moveToLast、根据需要移动。现在我想知道,在Android中,上述哪种方法的内存效率更高? 最佳答案 Cursor方法的内存效率更高:假设您的数据库中有1000个条目,并且您有一个可以同时显

android - 明确地关闭 SQLite 数据库中的 Cursor,需要还是不需要?

据我了解,在关闭数据库后,游标变为“无效”,是否也同时关闭了游标?这是否避免了必须执行如下所示的操作?示例1publicvoidStringgetResultsAndReturnString(){Stringresult="";SQLiteDatabasedb=dbHelper.getReadableDatabase();Cursorcursor=qb.query(db,projection,null,null,null,null,null);cursor.close();示例2publicvoidCursorgetResultsAndReturnCursor(){SQLiteData

android - 将 Observable<Observable<Cursor>> 扁平化为 Observable<Cursor>

我有一个Observable返回单个Cursor实例(Observable)。我正在尝试利用ContentObservable.fromCursor获取onNext中每个游标的行回调。我想到的解决方案之一是这样的构造:ContentObservable.fromCursor(cursorObservable.toBlocking().first()).subscribe(cursor->{//maptoobject//addtooutercollection},e->{},()->{//dosomethingwithlistofobjects(outercollection)});由于

android - 错误 : Trying to requery an already closed cursor

我遇到了一个错误,但我似乎找不到解决方案。我的应用程序在ICS4.0.3上运行,但它在Android3.2上返回错误。这是我的MainActivity.java文件中的代码:SQLiteDatabasedb=databaseHelper.getReadableDatabase();Cursorcursor=db.query(DatabaseHelper.TABLE_NAME,newString[]{"_id","isim","icerik"},null,null,null,null,null);startManagingCursor(cursor);tts=0;while(cursor

android - 2048 kb 的游标窗口分配失败。 # Open Cursors=1 (# cursors opened by this proc=1)

我正在制作一个使用数据库的Kiosk应用程序。该应用程序一直在前台运行。该应用程序有许多使用一个共享DataBaseHelper实例的线程。该应用程序运行完美,但大部分时间在5或6小时后,我遇到这些异常,然后应用程序崩溃:E/DataBaseHelper﹕Cursorwindowallocationof2048kbfailed.#OpenCursors=1(#cursorsopenedbythisproc=1)E/CursorWindow﹕CouldnotallocateCursorWindow'/data/user/0/com.kios.frm/databases/YadProjec

android - 我怎样才能让我的 Cursor 在方向改变时存活下来?

我正在努力使我的应用旋转友好,但我在保存光标时遇到了一些问题。游标在ListView中显示了大约13k+行数据,因此如果每次配置更改时我都重新查询,将花费相当长的时间。在我的onRetainNonConfigurationInstance()中,我返回我的Cursor,然后通过getLastNonConfigurationInstance()检索它。但是,我检索到的游标似乎已经关闭,因此我的适配器无法再呈现列表。据我了解,游标已关闭,因为onDestroy()会自动关闭所有游标。我这样保存Cursor:@OverridepublicObjectonRetainNonConfigurat