0

假设我有 5 个按钮。对于每个按钮,我希望能够触发一个侦听器。一旦监听器被触发,我想在我的 sdk 中触发一个异步任务,然后让 sdk 返回异步任务的状态。

1)我写一个单独的监听器/按钮吗?我在某处读到我只能在 android 中注册一个侦听器,如果那是真的,我该如何处理许多侦听器?

2) 如何将 SDK 的 postExecute 调用结果返回到 api 层?

4

3 回答 3

2

1)我写一个单独的监听器/按钮吗?我在某处读到我只能在 android 中注册一个侦听器,如果那是真的,我该如何处理许多侦听器?

一个 View 只能有一个每种类型的监听器,即一个 Button 不能有两个OnClickListeners。不要将此与一个侦听器可以附加到多个视图这一事实混淆,即 ButtonA 和 ButtonB 可以具有相同的OnClickListener

2) 如何将 SDK 的 postExecute 调用结果返回到 api 层?

你的术语不正确,但你会在你去的时候弄明白。通常onPostExecute()会调用另一个方法或直接使用视图:

@Override
protected void onPostExecute(String result) {
    doSomething(result);
    textView.setText(result);
}
于 2012-12-11T21:22:54.930 回答
0

最简单的方法是在活动中设置一个侦听器,然后处理多个按钮。您可以使用OnKeyListener类执行此操作。然后,您对按下哪个键进行切换,为您希望操作的按钮设置案例,然后启动您的AsyncTask.

我不太确定“返回 postExecute”是什么意思。但是,如果您查看AsyncTask,您会看到如何使用正确的参数将结果返回到 onPostExecute。当您实例化您的子类时,AsyncTask您可以轻松地传递您希望执行回调的活动或上下文。

于 2012-12-11T21:22:22.013 回答
0

您可以有多个侦听器,根据您想对它们做什么,您可以为每个按钮设置一个。至于postExecute(),它在 UI 线程上运行,因此您可以从那里显示结果或做任何您想做的事情。有关更多详细信息,您需要提供一些您尝试过的代码,并准确说明您遇到问题的地方。如果您还没有,请通过

关于入门的 Android 文档

这个链接描述了 AsynTask

于 2012-12-11T21:24:26.633 回答