【发布时间】:2015-05-04 17:46:28
【问题描述】:
Google 决定制作一个没有模式对话框的单线程用户界面。我敢肯定,你们中的大多数人都发现在您的函数返回之前没有任何更新,因为一切都是事件驱动的单个线程(根据“法律”)。
如果我有一个简单的警告框,例如“你确定吗?” (仅示例),使用是和否按钮,然后我必须为按钮分配回调,而不是具有简单的返回值(无模式对话框)。很好,即使返回值会极大地简化我的问题(参数对调用者来说是本地的),尽管这会阻止调用活动响应(模态)。
现在想象一下,如果我有一个项目列表并且用户尝试执行某些操作。对话框现在必须有某种方式将我想要执行操作的项目传递给按钮的回调,但我似乎无法在 API 中找到任何机制来将其传递给 onclick 处理程序。使用非局部变量是一种变通方法,但很麻烦。
如何干净利落地传递这些信息?有没有人有某种黑客可以以某种方式“伪造”一个可以返回值的模式对话框(我不知道如何)。
【问题讨论】:
-
你在说101apps.co.za/articles/… ??
-
没有。在这个特定的实例中,我有一个由 SQL 适配器填充的 ListView。列表项代表一副抽认卡。滑动手势可以删除牌组。代码首先检查以确保卡片组中没有卡片,并警告用户将要删除多少张卡片。我需要将要从对话框的调用者中删除的牌组传播到按下 OK 按钮时将运行的回调中。还有其他情况,但这是一个例子。
-
教程中表示的内容相同,您必须根据用户与对话框列表的交互来维护列表项,然后按下 OK 按钮,您必须将该局部变量传递给特定函数以进行进一步操作。我想你可以理解这一点。
标签: android