如何在运行时为Android UI组件获取注册的EventListener

如何在运行时为Android UI组件获取注册的EventListener,android,event-listener,android-testing,Android,Event Listener,Android Testing,我正在为一堆Android应用程序编写测试程序。我计划首先在屏幕上获取所有视图对象(不是ViewGroup的实例),并针对它们触发事件(通过robotium或sdk提供的方法)。问题是,我不知道哪些类型的EventListener注册到这些视图对象。我尝试对所有这些对象启动CLICK,但是对于LongCLICK、flip和doubletap,还有很多其他事件处理程序。那么,在运行时,我是否可以为Android UI组件注册EventListener?您好,David,您可以使用listener作

我正在为一堆Android应用程序编写测试程序。我计划首先在屏幕上获取所有视图对象(不是ViewGroup的实例),并针对它们触发事件(通过robotium或sdk提供的方法)。问题是,我不知道哪些类型的EventListener注册到这些视图对象。我尝试对所有这些对象启动CLICK,但是对于LongCLICK、flip和doubletap,还有很多其他事件处理程序。那么,在运行时,我是否可以为Android UI组件注册EventListener?

您好,David,您可以使用listener作为按钮设置ClickListener()。但是,如果您想为复选框使用listener,可以使用setOnCheckedChangeListener()/setOnClickListener()来标识复选框的状态。同样,您必须根据您的需求/用例实现listener for View。 如果您想实现按钮的侦听器,可以用以下方法实现

 Button b= (Button)findViewById(R.id.yourBtnName);
 b.setOnClickListener(BtnListener);

 private OnClickListener  BtnListener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        // Here you can perform your stuff
   }
  }

您看过Android SDK附带的Hierarchy Viewer工具吗?我认为层次查看器提供了这些信息

嗨!Akshay,我想做的是在运行时检查,例如,在测试程序中,某个视图是否注册了侦听器。