- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 2 个来自 SQLite 数据库中不同表的游标。我正在尝试将来自两个游标的数据放入一个 ListView
但每个游标的数据格式不同。
我考虑的是使用 MergeCursor
来组合两个游标,但是我的 SimpleCursorAdapter
的 ViewBinder
会将它们视为单个游标并且将无法区分格式(除非我更改了我不想做的表格)。
最后,我找到了 2 个名为 Cursor.repond(Bundle)
和 Cursor.getExtras()
的方法,但是开发人员控制台上的文档非常简短,谷歌搜索这些方法没有阐明它们的用途。
我测试了我的想法,在我的数据库类中使用 resond()
进行查询:
extr.putString("table", the_tab);
Cursor c_in = db.rawQuery(qry, null);
c_in.respond(extr);
return c_in;
并在 ViewBinder
中使用 getExtras()
来了解查询表并相应地格式化 ListView
项目:
Bundle extr=cur.getExtras();
String tab= extr.getString("table");
但我总是遇到一个异常,即 tab
是 null
。
经过这么长的描述,我的问题是:我是否正确使用了 respond
和 getExtras
方法?如果没有,是否有更好的方法来解决我的问题?
最佳答案
如果你想在 getExtras
中使用 Bundle
似乎 AbstractCursor
是由 AbstractWindowedCursor
扩展的由SQLiteCursor
扩展定义了一个setExtras
方法。它的文档读取
根据文档,Sets a android.os.Bundle that will be returned by getExtras(). null will be converted into android.os.Bundle.EMPTY.
respond
用于与 Cursor
进行带外通信。
所以答案是:
((AbstractCursor) cursor).setExtras(bundle);
那么你应该可以调用
cursor.getExtras();
稍后检索该Bundle
。
编辑:
进一步查看后,似乎 setExtras
出于某种原因被标记为隐藏,因此它是公开的,并且旨在按描述(和期望)使用。参见 ContactsProvider2 example
因此,我想到了使用 CursorWrapper
,并覆盖那里的 getExtras
以提供 Bundle
。在我的例子中,我在 CursorWrapper
中创建了 Bundle
,因此我不需要设置它的方法。
@Override
public Bundle getExtras() {
return _meta_data;
}
关于android - 使用 cursor.respond(Bundle) & cursor.getextras(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006511/
如何修复 Excel VBA 中的 Not Responding 错误? 我的代码是完美的,我没有收到任何错误,但在我运行它之后,我会看到 Excel VBA 的NOT RESPONDING 顶部并且
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Keep app responsive during long task 在处理大型查询或长流程循环时如何避免“无响
这是我第一次遇到有人试图侵入我创建的网站。我可以做什么来阻止这些尝试? 顺便说一句,他们的 SQL 注入(inject)不可能起作用,而且我们拥有的任何数据都不能被正常使用该网站的任何人使用。 附加:
我的 java 进程停止响应。我尝试 jstack 但失败并出现以下错误。 21039: Unable to open socket file: target process not respondi
This question already has answers here: Closed 7 years ago. Possible Duplicate: Dismiss keyboard on
我不确定这是否重复,我尝试过的可能的补救措施无效。 (下面会提到) 我目前正在为我正在做的项目使用 Theme.AppCompat.NoActionBar 并且正在使用 android.support
这是一个简单的用户登录。我只是想了解这个概念。让我解释一下我的代码问题。这是我的表单: User: Password: check_login.php: Use
我正在创建一个线程,它可以控制所有程序过程消息并且不会卡住程序。我写了this code我得到了 program not responding。 有没有人有使用线程的经验可以帮助我? 最佳答案 Win
我将 Selenium 与 Python 结合使用。单击按钮时,我在 widows Python 中收到一条消息: Not responding in widows Python I have the
我有一个长时间运行的方法,必须在 UI 线程上运行。(Devex - gridView.CopyToClipboard()) 我不需要 UI 在复制时响应,我添加了启动画面,这样用户就不会感到无聊。
对于测试,使程序显示“无响应”的最简单方法是什么?中断 Windows 消息或将其置于无限循环中? 我试过一个简单的循环 while(true) 但这行不通。测试应用程序是 C# 控制台应用程序。它在
App里发生的最糟糕的事是弹出应用无响应”Application Not Responding” (ANR) 对话框.本课讲的是如何保持应用响应,避免ANR。 什么触发ANR 通常,系统会在应用
我们遇到一个客户运行我们基于 WPF 的程序的问题。他可以启动应用程序、创建新文档、在 TreeView 中导航菜单项以查看文档的不同部分、更改几乎(如果不是全部)我们的文本框值、将项目添加到列表(使
在VCL主线程中,我运行一个脚本,该脚本可能需要几分钟才能执行(这是一个还原数据库脚本)。 如果用户单击UI,则我的标题为“无响应”。 Application.ProcessMessages不起作用。
我这里有一个无意义的小脚本,我正在 MATLAB R2013b 中执行它: clear all; n = 2000; times = 50; i = 0; tCPU = tic; disp 'CPU:
我想将验证错误发送回另一个页面(添加),因此我的save操作具有以下功能: @Transactional(readOnly = false) def save(AddDomainCommand com
我正在构建一个 JavaFX 应用程序并使用 JOptionPane 来显示对话框 我遇到的问题之一是创建一个新对话框并且不在 5 秒左右关闭它会导致主 JavaFX 阶段进入“无响应”状态 在新线程
好吧,我尝试将信息从 servlet 发送到 jsp,所以我尝试使用 request.setAttribute() 和 respond.getRequestDispatcher("page.jsp")
我对代码进行排序有什么问题吗?当我打开程序时,我看到错误“程序未响应”。请检查我的代码。 void sorting(el_list **first) { el_list *newfirst =
出于测试目的,我需要编写一个程序,将著名的“应用程序未响应”消息显示在屏幕上。我不知道我怎么会激起这样的 react 。 最快、最简单的方法是什么?最好是 C/C++ 或 Java 最佳答案 在 Wi
我是一名优秀的程序员,十分优秀!