我编写与其他应用程序交互的服务。它在已经有监听器的视图(按钮、文本视图、...)上注册监听器。我需要用我自己的听众(作品)替换它们,做一些事情,然后注销我的听众并恢复旧的听众。
- 一个带有 onClickListener 按钮的 App 正在运行
- 我的服务在 UI-Thread 中注册了一个 onClickListener + 做一些事情
- 我的服务恢复了旧的监听器
如果有 - 方法,那将很容易view.getOnClickListener
。然后我可以保存旧的并在完成后替换新的听众。
有什么方法可以从视图中获取侦听器,或者将多个相同类型的侦听器绑定到一个视图?
Button btn = (Button) findViewById(R.id.btn1);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//do something
}
});
// I need to do, but found no solution for that.
View.OnClickListener oldListener = btn.getOnClickListener();
如果我将新侦听器注册到视图,旧的侦听器将被覆盖,对吗?如果两个侦听器(“新”和“旧”)同时存在也可以。只有旧的不能消失。
编辑:不幸的是,我无法将听众保存在分配中。我需要从视图组件中向后获取它。
谢谢