Android有多个听众吗?

时间:2012-12-11 21:16:28

标签: android

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

1)我是否写了一个单独的监听器/按钮?我在某处读到了我在android中只能有一个注册的监听器,如果这样的话我该如何处理很多听众呢?

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

3 个答案:

答案 0 :(得分:2)

  

1)我是否写了一个单独的监听器/按钮?我在某处读到了我在android中只能有一个注册的监听器,如果这样的话我该如何处理很多听众呢?

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

  

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

你的术语不对,但你会随便弄清楚。通常onPostExecute()会调用另一种方法或直接使用View:

@Override
protected void onPostExecute(String result) {
    doSomething(result);
    textView.setText(result);
}

答案 1 :(得分:0)

最简单的方法是在活动中设置一个侦听器,然后处理多个按钮。您可以使用OnKeyListener课程执行此操作。然后,您可以切换哪个键被击中,为您要操作的按钮设置案例,然后启动AsyncTask

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

答案 2 :(得分:0)

您可以拥有多个侦听器,并且根据您要对其执行的操作,您可以为每个按钮添加一个。就postExecute()而言,它在UI线程上运行,因此您可以从那里显示结果或使用它做任何您想做的事情。有关详细信息,您需要提供一些您尝试过的代码,并准确解释您遇到问题的位置。如果您还没有,请浏览

<强> Android Docs about getting started

<强> This link describes AsynTask